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,
129 EVENT_USER_LAST_AVAILABLE = 9999
132 const int16 JOYAXIS_MIN = -32768;
133 const int16 JOYAXIS_MAX = 32767;
158 JOYSTICK_BUTTON_INVALID,
163 JOYSTICK_BUTTON_BACK,
164 JOYSTICK_BUTTON_GUIDE,
165 JOYSTICK_BUTTON_START,
166 JOYSTICK_BUTTON_LEFT_STICK,
167 JOYSTICK_BUTTON_RIGHT_STICK,
168 JOYSTICK_BUTTON_LEFT_SHOULDER,
169 JOYSTICK_BUTTON_RIGHT_SHOULDER,
170 JOYSTICK_BUTTON_DPAD_UP,
171 JOYSTICK_BUTTON_DPAD_DOWN,
172 JOYSTICK_BUTTON_DPAD_LEFT,
173 JOYSTICK_BUTTON_DPAD_RIGHT,
174 JOYSTICK_BUTTON_DPAD_CENTER
181 JOYSTICK_AXIS_LEFT_STICK_X,
182 JOYSTICK_AXIS_LEFT_STICK_Y,
183 JOYSTICK_AXIS_RIGHT_STICK_X,
184 JOYSTICK_AXIS_RIGHT_STICK_Y,
185 JOYSTICK_AXIS_LEFT_TRIGGER,
186 JOYSTICK_AXIS_RIGHT_TRIGGER,
195 MOUSE_BUTTON_LEFT = 0,
196 MOUSE_BUTTON_RIGHT = 1,
197 MOUSE_BUTTON_MIDDLE = 2,
199 MOUSE_WHEEL_DOWN = 4,
253 Event() : type(EVENT_INVALID), kbdRepeat(false), customType(0) {
280 virtual bool pollEvent(
Event &event) = 0;
305 _artificialEventQueue.push(ev);
309 if (!_artificialEventQueue.empty()) {
310 ev = _artificialEventQueue.pop();
346 virtual bool notifyEvent(
const Event &event) = 0;
404 void registerMapper(
EventMapper *mapper,
bool autoFree);
416 void registerSource(
EventSource *source,
bool autoFree);
429 void ignoreSources(
bool ignore);
437 void registerObserver(
EventObserver *obs, uint priority,
bool autoFree,
bool listenPolls =
false);
451 struct MapperEntry :
public Entry {
457 struct SourceEntry :
public Entry {
463 struct ObserverEntry :
public Entry {
471 void dispatchEvent(
const Event &event);
488 LBUTTON = 1 << MOUSE_BUTTON_LEFT,
489 RBUTTON = 1 << MOUSE_BUTTON_RIGHT
504 virtual bool pollEvent(
Event &event) = 0;
509 virtual void pushEvent(
const Event &event) = 0;
514 virtual void purgeMouseEvents() = 0;
519 virtual void purgeKeyboardEvents() = 0;
522 virtual Point getMousePos()
const = 0;
529 virtual int getButtonState()
const = 0;
532 virtual int getModifierState()
const = 0;
537 virtual int shouldQuit()
const = 0;
542 virtual int shouldReturnToLauncher()
const = 0;
548 virtual void resetReturnToLauncher() = 0;
549 virtual void resetQuit() = 0;
560 virtual Keymap *getGlobalKeymap() = 0;
567 kEventManPriority = 0,
572 kEventRecorderPriority = 1,
577 kEventRemapperPriority = 999
bool isMouseEvent(const Event &event)
Common::Path path
Definition: events.h:240
void addEvent(const Event &ev)
Definition: events.h:304
uint8 button
Definition: events.h:149
bool kbdRepeat
Definition: events.h:220
Common::Point relMouse
Definition: events.h:245
CustomEventType customType
Definition: events.h:237
EventType
Definition: events.h:49
EventSource * makeKeyboardRepeatingEventSource(EventSource *eventSource)
uint32 CustomEventType
Definition: events.h:204
int16 position
Definition: events.h:142
EventDispatcher * getEventDispatcher()
Definition: events.h:583
Point mouse
Definition: events.h:234
Definition: keymapper.h:44
JoystickAxis
Definition: events.h:180
Definition: noncopyable.h:39
MouseButton
Definition: events.h:194
KeyState kbd
Definition: events.h:226
bool pollEvent(Event &ev)
Definition: events.h:308
JoystickState joystick
Definition: events.h:251
Definition: algorithm.h:29
virtual bool allowMapping() const
Definition: events.h:290
Definition: keyboard.h:294
EventType type
Definition: events.h:213
JoystickButton
Definition: events.h:157
virtual void notifyPoll()
Definition: events.h:351
virtual void init()
Definition: events.h:497
byte axis
Definition: events.h:140
virtual bool allowMapping() const
Definition: events.h:321