Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUIInputUnixMouse.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef GUI_INPUT_UNIX_MOUSE_H
11#define GUI_INPUT_UNIX_MOUSE_H
12
13#include "eC_Types.h"
14#include "GUIInputMedia.h"
15#include "GUITrace.h"
16#include "GUI.h"
17
18#include "GUIThread.h"
19#include "eC_TList_doubleLinked.h"
20#include "eC_Semaphore.h"
21
22class CGUIEvent;
24
27{
28public:
33 CGUIInputThreadDeviceUnix_Mouse(CGUIInputUnixMouse* pkInputDevice, const char* cpcMDevice);
34
37
41 void SetInvertYAxis(const eC_Bool& bInvertYAxis);
42
47 void SetSize(const eC_Int& iSizeX, const eC_Int& iSizeY);
48
52 void Execute(void *pArg);
53
60 eC_Bool GetMouseData(eC_Int& iDeltaX, eC_Int& iDeltaY, eC_Bool& bLeftButtonPressed);
61
62private:
63 CGUIInputUnixMouse* m_pkInputDevice;
64
65 eC_Int m_iTouchscreenWidth;
66 eC_Int m_iTouchscreenHeight;
67
68 eC_Int m_iMouseDevice;
69
70 eC_Int m_iMouseAbsPosX;
71 eC_Int m_iMouseAbsPosY;
72
73 eC_Bool m_bLeftButtonState;
74
75 eC_Bool m_bInvertYAxis;
76};
77
83{
84public:
91 static void CreateInstance(
92 const char* cpcMDevice,
93 const eC_Int& iMouseMaxPosX = 0,
94 const eC_Int& iMouseMaxPosY = 0,
95 const eC_Bool& bInvertYAxis = false);
96
97 virtual void PollEvent();
98
99 virtual void StopIdle();
100
105
109
113
117 pthread_cond_t* GetInputEventCond();
118
119 virtual void SetSize(const eC_Int& iSizeX, const eC_Int& iSizeY);
120
121protected:
129 const char* cpcMDevice,
130 const eC_Int& iMouseMaxPosX,
131 const eC_Int& iMouseMaxPosY,
132 const eC_Bool& bInvertYAxis);
134
135private:
139
142 CGUIInputUnixMouse& operator=(const CGUIInputUnixMouse& kSource);
143
144private:
145 const char* m_pcMouseDevice;
146
150 CGUIInputThreadDeviceUnix_Mouse* m_pkMouseThread;
151
153 eC_Semaphore m_kEventQueueSemaphore;
154
155 pthread_cond_t m_kInputEventCond;
156 pthread_mutex_t m_kInputEventMutex;
157
158};
159#endif // GUI_INPUT_UNIX_MOUSE_H
Base class for Guiliani Events.
Definition: GUIEvent.h:26
Definition: GUIInputMedia.h:30
Thread for Mouse event handling in Unix.
Definition: GUIInputUnixMouse.h:27
~CGUIInputThreadDeviceUnix_Mouse()
Standard destructor.
void SetSize(const eC_Int &iSizeX, const eC_Int &iSizeY)
eC_Bool GetMouseData(eC_Int &iDeltaX, eC_Int &iDeltaY, eC_Bool &bLeftButtonPressed)
CGUIInputThreadDeviceUnix_Mouse(CGUIInputUnixMouse *pkInputDevice, const char *cpcMDevice)
void SetInvertYAxis(const eC_Bool &bInvertYAxis)
Definition: GUIInputUnixMouse.h:83
virtual void StopIdle()
virtual void PollEvent()
pthread_cond_t * GetInputEventCond()
CGUIInputUnixMouse(const char *cpcMDevice, const eC_Int &iMouseMaxPosX, const eC_Int &iMouseMaxPosY, const eC_Bool &bInvertYAxis)
virtual void SetSize(const eC_Int &iSizeX, const eC_Int &iSizeY)
static void CreateInstance(const char *cpcMDevice, const eC_Int &iMouseMaxPosX=0, const eC_Int &iMouseMaxPosY=0, const eC_Bool &bInvertYAxis=false)
eC_TListDoubleLinked< CGUIEvent * > & GetEventQueue()
This is the base class for Guiliani threads.
Definition: GUIThread.h:85