11 #include "windowing/XBMC_events.h" 16 #define XBMC_BUTTON(X) (1 << ((X)-1)) 17 #define XBMC_BUTTON_LEFT 1 18 #define XBMC_BUTTON_MIDDLE 2 19 #define XBMC_BUTTON_RIGHT 3 20 #define XBMC_BUTTON_WHEELUP 4 21 #define XBMC_BUTTON_WHEELDOWN 5 22 #define XBMC_BUTTON_X1 6 23 #define XBMC_BUTTON_X2 7 24 #define XBMC_BUTTON_X3 8 25 #define XBMC_BUTTON_X4 9 26 #define XBMC_BUTTON_LMASK XBMC_BUTTON(XBMC_BUTTON_LEFT) 27 #define XBMC_BUTTON_MMASK XBMC_BUTTON(XBMC_BUTTON_MIDDLE) 28 #define XBMC_BUTTON_RMASK XBMC_BUTTON(XBMC_BUTTON_RIGHT) 29 #define XBMC_BUTTON_X1MASK XBMC_BUTTON(XBMC_BUTTON_X1) 30 #define XBMC_BUTTON_X2MASK XBMC_BUTTON(XBMC_BUTTON_X2) 31 #define XBMC_BUTTON_X3MASK XBMC_BUTTON(XBMC_BUTTON_X3) 32 #define XBMC_BUTTON_X4MASK XBMC_BUTTON(XBMC_BUTTON_X4) 34 #define MOUSE_MINIMUM_MOVEMENT 2 35 #define MOUSE_DOUBLE_CLICK_LENGTH 500L 36 #define MOUSE_ACTIVE_LENGTH 5000L 38 #define MOUSE_MAX_BUTTON 7 43 MOUSE_STATE_NORMAL = 1,
54 MOUSE_LEFT_BUTTON = 0,
89 bool button[MOUSE_MAX_BUTTON];
110 void SetResolution(
int maxX,
int maxY,
float speedX,
float speedY);
112 bool IsEnabled()
const;
114 void SetActive(
bool active =
true);
115 void SetState(MOUSE_STATE state) { m_pointerState = state; }
116 void SetEnabled(
bool enabled =
true);
117 MOUSE_STATE GetState()
const {
return m_pointerState; }
118 uint32_t GetKey()
const;
120 HoldAction GetHold(
int ButtonID)
const;
121 inline int GetX(
void)
const {
return m_mouseState.x; }
122 inline int GetY(
void)
const {
return m_mouseState.y; }
123 inline int GetDX(
void)
const {
return m_mouseState.dx; }
124 inline int GetDY(
void)
const {
return m_mouseState.dy; }
172 BUTTON_ACTION Update(
unsigned int time,
int x,
int y,
bool down);
177 static const unsigned int click_confines = 5;
180 static const unsigned int short_click_time = 1000;
183 static const unsigned int double_click_time = 500;
185 bool InClickRange(
int x,
int y)
const;
191 STATE_IN_DOUBLE_CLICK,
192 STATE_IN_DOUBLE_IGNORE,
196 BUTTON_STATE m_state;
208 bool MovedPastThreshold()
const;
211 MOUSE_STATE m_pointerState{MOUSE_STATE_NORMAL};
214 CButtonState m_buttonState[MOUSE_MAX_BUTTON];
218 float m_speedX{0.0f};
219 float m_speedY{0.0f};
222 unsigned int m_lastActiveTime;
224 bool bClick[MOUSE_MAX_BUTTON]{};
225 bool bDoubleClick[MOUSE_MAX_BUTTON]{};
226 HoldAction m_hold[MOUSE_MAX_BUTTON]{};
227 bool bLongClick[MOUSE_MAX_BUTTON]{};
int16_t dx
Definition: MouseStat.h:83
int x
Definition: MouseStat.h:79
Definition: MouseStat.h:94
Class encapsulating information regarding a particular user action to be sent to windows and controls...
Definition: Action.h:21
int16_t dy
Definition: MouseStat.h:85
int y
Definition: MouseStat.h:81
Definition: XBMC_events.h:117
bool active
Definition: MouseStat.h:91
Definition: MouseStat.h:102
Holds everything we know about the current state of the mouse.
Definition: MouseStat.h:76
int8_t dz
Definition: MouseStat.h:87