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
140const int16 JOYAXIS_MIN = -32768;
141const 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,
313 _artificialEventQueue.push(ev);
317 if (!_artificialEventQueue.empty()) {
318 ev = _artificialEventQueue.pop();
459 struct MapperEntry :
public Entry {
463 List<MapperEntry> _mappers;
465 struct SourceEntry :
public Entry {
469 List<SourceEntry> _sources;
471 struct ObserverEntry :
public Entry {
473 EventObserver *observer;
477 List<ObserverEntry> _observers;
479 void dispatchEvent(
const Event &event);
496 LBUTTON = 1 << MOUSE_BUTTON_LEFT,
497 RBUTTON = 1 << MOUSE_BUTTON_RIGHT
557 virtual void resetQuit() = 0;
bool allowMapping() const override
Definition: events.h:329
void addEvent(const Event &ev)
Definition: events.h:312
bool pollEvent(Event &ev) override
Definition: events.h:316
void registerObserver(EventObserver *obs, uint priority, bool autoFree, bool listenPolls=false)
void registerMapper(EventMapper *mapper, bool autoFree)
void registerSource(EventSource *source, bool autoFree)
void ignoreSources(bool ignore)
void unregisterSource(EventSource *source)
void unregisterMapper(EventMapper *mapper)
void unregisterObserver(EventObserver *obs)
virtual bool pollEvent(Event &event)=0
EventDispatcher * getEventDispatcher()
Definition: events.h:591
virtual Keymap * getGlobalKeymap()=0
virtual int shouldQuit() const =0
virtual void init()
Definition: events.h:505
virtual void pushEvent(const Event &event)=0
virtual void purgeKeyboardEvents()=0
virtual int getButtonState() const =0
virtual Keymapper * getKeymapper()=0
@ kEventRemapperPriority
Definition: events.h:585
@ kEventRecorderPriority
Definition: events.h:580
@ kEventManPriority
Definition: events.h:575
virtual int shouldReturnToLauncher() const =0
virtual void resetReturnToLauncher()=0
virtual void purgeMouseEvents()=0
virtual int getModifierState() const =0
virtual Point getMousePos() const =0
virtual bool mapEvent(const Event &ev, List< Event > &mappedEvents)=0
virtual void notifyPoll()
Definition: events.h:359
virtual bool notifyEvent(const Event &event)=0
virtual bool pollEvent(Event &event)=0
virtual bool allowMapping() const
Definition: events.h:298
Definition: keymapper.h:44
Definition: noncopyable.h:39
JoystickButton
Definition: events.h:165
EventType
Definition: events.h:49
MouseButton
Definition: events.h:202
uint32 CustomEventType
Definition: events.h:212
bool isMouseEvent(const Event &event)
EventSource * makeKeyboardRepeatingEventSource(EventSource *eventSource)
JoystickAxis
Definition: events.h:188
@ EVENT_FOCUS_GAINED
Definition: events.h:117
@ EVENT_PREDICTIVE_DIALOG
Definition: events.h:84
@ EVENT_KEYDOWN
Definition: events.h:52
@ EVENT_USER_FIRST_AVAILABLE
Definition: events.h:136
@ EVENT_INPUT_CHANGED
Definition: events.h:74
@ EVENT_MOUSEMOVE
Definition: events.h:56
@ EVENT_HOTSPOTS_SHOW
Definition: events.h:125
@ EVENT_KEYUP
Definition: events.h:54
@ EVENT_X1BUTTONDOWN
Definition: events.h:111
Definition: algorithm.h:29
Point mouse
Definition: events.h:242
bool kbdRepeat
Definition: events.h:228
CustomEventType customType
Definition: events.h:245
EventType type
Definition: events.h:221
JoystickState joystick
Definition: events.h:259
Common::Path path
Definition: events.h:248
Common::Point relMouse
Definition: events.h:253
KeyState kbd
Definition: events.h:234
int16 position
Definition: events.h:150
byte axis
Definition: events.h:148
uint8 button
Definition: events.h:157
Definition: keyboard.h:294