22 #ifndef COMMON_EVENTS_H 23 #define COMMON_EVENTS_H 25 #include "common/keyboard.h" 26 #include "common/path.h" 27 #include "common/queue.h" 28 #include "common/rect.h" 29 #include "common/noncopyable.h" 31 #include "common/list.h" 32 #include "common/singleton.h" 57 EVENT_LBUTTONDOWN = 4,
59 EVENT_RBUTTONDOWN = 6,
63 EVENT_MBUTTONDOWN = 13,
67 EVENT_RETURN_TO_LAUNCHER = 16,
71 EVENT_SCREEN_CHANGED = 11,
86 EVENT_CUSTOM_BACKEND_ACTION_START = 18,
87 EVENT_CUSTOM_BACKEND_ACTION_END = 19,
88 EVENT_CUSTOM_BACKEND_ACTION_AXIS = 34,
89 EVENT_CUSTOM_ENGINE_ACTION_START = 20,
90 EVENT_CUSTOM_ENGINE_ACTION_END = 21,
92 EVENT_VIRTUAL_KEYBOARD = 22,
96 EVENT_JOYAXIS_MOTION = 24,
97 EVENT_JOYBUTTON_DOWN = 25,
98 EVENT_JOYBUTTON_UP = 26,
100 EVENT_CLIPBOARD_UPDATE = 27,
102 EVENT_CUSTOM_BACKEND_HARDWARE = 28,
112 EVENT_X1BUTTONUP = 31,
113 EVENT_X2BUTTONDOWN = 32,
114 EVENT_X2BUTTONUP = 33,
118 EVENT_FOCUS_LOST = 37,
126 EVENT_HOTSPOTS_HIDE = 39,
137 EVENT_USER_LAST_AVAILABLE = 9999
140 const int16 JOYAXIS_MIN = -32768;
141 const int16 JOYAXIS_MAX = 32767;
166 JOYSTICK_BUTTON_INVALID,
171 JOYSTICK_BUTTON_BACK,
172 JOYSTICK_BUTTON_GUIDE,
173 JOYSTICK_BUTTON_START,
174 JOYSTICK_BUTTON_LEFT_STICK,
175 JOYSTICK_BUTTON_RIGHT_STICK,
176 JOYSTICK_BUTTON_LEFT_SHOULDER,
177 JOYSTICK_BUTTON_RIGHT_SHOULDER,
178 JOYSTICK_BUTTON_DPAD_UP,
179 JOYSTICK_BUTTON_DPAD_DOWN,
180 JOYSTICK_BUTTON_DPAD_LEFT,
181 JOYSTICK_BUTTON_DPAD_RIGHT,
182 JOYSTICK_BUTTON_DPAD_CENTER
189 JOYSTICK_AXIS_LEFT_STICK_X,
190 JOYSTICK_AXIS_LEFT_STICK_Y,
191 JOYSTICK_AXIS_RIGHT_STICK_X,
192 JOYSTICK_AXIS_RIGHT_STICK_Y,
193 JOYSTICK_AXIS_LEFT_TRIGGER,
194 JOYSTICK_AXIS_RIGHT_TRIGGER,
203 MOUSE_BUTTON_LEFT = 0,
204 MOUSE_BUTTON_RIGHT = 1,
205 MOUSE_BUTTON_MIDDLE = 2,
207 MOUSE_WHEEL_DOWN = 4,
261 Event() : type(EVENT_INVALID), kbdRepeat(false), customType(0) {
288 virtual bool pollEvent(
Event &event) = 0;
313 _artificialEventQueue.push(ev);
317 if (!_artificialEventQueue.empty()) {
318 ev = _artificialEventQueue.pop();
354 virtual bool notifyEvent(
const Event &event) = 0;
412 void registerMapper(
EventMapper *mapper,
bool autoFree);
424 void registerSource(
EventSource *source,
bool autoFree);
437 void ignoreSources(
bool ignore);
445 void registerObserver(
EventObserver *obs, uint priority,
bool autoFree,
bool listenPolls =
false);
459 struct MapperEntry :
public Entry {
465 struct SourceEntry :
public Entry {
471 struct ObserverEntry :
public Entry {
479 void dispatchEvent(
const Event &event);
496 LBUTTON = 1 << MOUSE_BUTTON_LEFT,
497 RBUTTON = 1 << MOUSE_BUTTON_RIGHT
512 virtual bool pollEvent(
Event &event) = 0;
517 virtual void pushEvent(
const Event &event) = 0;
522 virtual void purgeMouseEvents() = 0;
527 virtual void purgeKeyboardEvents() = 0;
530 virtual Point getMousePos()
const = 0;
537 virtual int getButtonState()
const = 0;
540 virtual int getModifierState()
const = 0;
545 virtual int shouldQuit()
const = 0;
550 virtual int shouldReturnToLauncher()
const = 0;
556 virtual void resetReturnToLauncher() = 0;
557 virtual void resetQuit() = 0;
568 virtual Keymap *getGlobalKeymap() = 0;
575 kEventManPriority = 0,
580 kEventRecorderPriority = 1,
585 kEventRemapperPriority = 999
bool isMouseEvent(const Event &event)
Common::Path path
Definition: events.h:248
void addEvent(const Event &ev)
Definition: events.h:312
uint8 button
Definition: events.h:157
bool kbdRepeat
Definition: events.h:228
Common::Point relMouse
Definition: events.h:253
CustomEventType customType
Definition: events.h:245
EventType
Definition: events.h:49
EventSource * makeKeyboardRepeatingEventSource(EventSource *eventSource)
uint32 CustomEventType
Definition: events.h:212
int16 position
Definition: events.h:150
EventDispatcher * getEventDispatcher()
Definition: events.h:591
Point mouse
Definition: events.h:242
bool pollEvent(Event &ev) override
Definition: events.h:316
Definition: keymapper.h:44
JoystickAxis
Definition: events.h:188
Definition: noncopyable.h:39
MouseButton
Definition: events.h:202
KeyState kbd
Definition: events.h:234
JoystickState joystick
Definition: events.h:259
Definition: algorithm.h:29
virtual bool allowMapping() const
Definition: events.h:298
Definition: keyboard.h:294
EventType type
Definition: events.h:221
JoystickButton
Definition: events.h:165
virtual void notifyPoll()
Definition: events.h:359
virtual void init()
Definition: events.h:505
byte axis
Definition: events.h:148
bool allowMapping() const override
Definition: events.h:329