Gamedev Framework (gf) 1.2.0
A C++17 framework for 2D games
Event.h
1/*
2 * Gamedev Framework (gf)
3 * Copyright (C) 2016-2022 Julien Bernard
4 *
5 * This software is provided 'as-is', without any express or implied
6 * warranty. In no event will the authors be held liable for any damages
7 * arising from the use of this software.
8 *
9 * Permission is granted to anyone to use this software for any purpose,
10 * including commercial applications, and to alter it and redistribute it
11 * freely, subject to the following restrictions:
12 *
13 * 1. The origin of this software must not be misrepresented; you must not
14 * claim that you wrote the original software. If you use this software
15 * in a product, an acknowledgment in the product documentation would be
16 * appreciated but is not required.
17 * 2. Altered source versions must be plainly marked as such, and must not be
18 * misrepresented as being the original software.
19 * 3. This notice may not be removed or altered from any source distribution.
20 *
21 * Part of this file comes from SFML, with the same license:
22 * Copyright (C) 2007-2015 Laurent Gomila (laurent@sfml-dev.org)
23 */
24#ifndef GF_EVENT_H
25#define GF_EVENT_H
26
27#include <cstdint>
28
29#include "Gamepad.h"
30#include "GraphicsApi.h"
31#include "Keyboard.h"
32#include "Mouse.h"
33#include "Rune.h"
34#include "Vector.h"
35
36namespace gf {
37#ifndef DOXYGEN_SHOULD_SKIP_THIS
38inline namespace v1 {
39#endif
40
45 enum class EventType {
46 // global event
47 Quit,
48
49 // window events
50 Resized,
51 Closed,
53 FocusLost,
54 Shown,
55 Hidden,
56 Exposed,
57 Minimized,
58 Maximized,
59 Restored,
60
61 // inputs events
65
71 MouseLeft,
72
78
80
84 };
85
90 struct WindowEvent {
91 uint32_t windowId;
92 };
93
98 struct ResizeEvent {
99 uint32_t windowId;
101 };
102
107 struct KeyEvent {
108 uint32_t windowId;
112 };
113
118 struct TextEvent {
119 uint32_t windowId;
121 };
122
128 uint32_t windowId;
131 uint8_t clicks;
132 };
133
139 uint32_t windowId;
142 };
143
149 uint32_t windowId;
151 };
152
160 };
161
169 int16_t value;
170 };
171
178 };
179
186 };
187
192 struct TouchEvent {
193 int64_t finger;
196 float pressure;
197 };
198
224 struct GF_GRAPHICS_API Event {
226 uint32_t timestamp;
227
228 union {
241 };
242
243 };
244
245#ifndef DOXYGEN_SHOULD_SKIP_THIS
246}
247#endif
248}
249
250#endif // GL_EVENT_H
GamepadId
A gamepad identifier.
Definition: Gamepad.h:123
GamepadAxis
The gamepad axis.
Definition: Gamepad.h:71
MouseButton
Mouse buttons.
Definition: Mouse.h:36
GamepadButton
The gamepad buttons.
Definition: Gamepad.h:43
Scancode
Scancodes.
Definition: Keyboard.h:51
GamepadHwId
A gamepad hardware identifier.
Definition: Gamepad.h:106
Keycode
Keycodes.
Definition: Keyboard.h:280
EventType
Enumeration of the different types of events.
Definition: Event.h:45
@ Closed
The window requested to be closed (data in event.window)
@ Minimized
The window is minimized (data in event.window)
@ Quit
The application is asked to quit.
@ FocusGained
The window gained focus (data in event.window)
@ MouseEntered
The mouse cursor entered the window (no data)
@ GamepadAxisMoved
A gamepad axis was moved (data in event.gamepadAxis)
@ TouchBegan
A touch began.
@ Resized
The window was resized (data in event.resize)
@ Maximized
The window is maximized (data in event.window)
@ KeyReleased
A key was released (data in event.key)
@ Restored
The window is restored (data in event.window)
@ MouseButtonPressed
A mouse button was pressed (data in event.mouseButton)
@ MouseButtonReleased
A mouse button was released (data in event.mouseButton)
@ Hidden
The window is hidden (data in event.window)
@ KeyRepeated
A key was repeated (data in event.key)
@ TouchEnded
A touch ended.
@ TextEntered
A text was entered (data in event.text)
@ MouseWheelScrolled
The mouse wheel was scrolled (data in event.mouseWheel)
@ Shown
The window is shown (data in event.window)
@ Exposed
The window is exposed (data in event.window)
@ MouseLeft
The mouse cursor left the window (no data)
@ KeyPressed
A key was pressed (data in event.key)
@ GamepadDisconnected
A gamepad was disconnected (data in event.gamepadDisconnection)
@ MouseMoved
The mouse cursor moved (data in event.mouseCursor)
@ GamepadConnected
A gamepad was connected (data in event.gamepadConnection)
@ TouchMoved
A touch moved.
@ GamepadButtonPressed
A gamepad button was pressed (data in event.gamepadButton)
@ FocusLost
The window lost focus (data in event.window)
@ GamepadButtonReleased
A gamepad button was released (data in event.gamepadButton)
The namespace for gf classes.
Defines a system event and its parameters.
Definition: Event.h:224
TextEvent text
Text event parameters (EventType::TextEntered)
Definition: Event.h:232
WindowEvent window
Window event parameters (EventType::Closed, EventType::FocusGained, EventType::FocusLost)
Definition: Event.h:229
MouseCursorEvent mouseCursor
Mouse cursor move event parameters (EventType::MouseMoved)
Definition: Event.h:234
TouchEvent touch
Touch event parameters (EventType::TouchBegan, EventType::Moved, EventType::Ended)
Definition: Event.h:240
EventType type
Type of the event.
Definition: Event.h:225
GamepadAxisEvent gamepadAxis
Gamepad axis event parameters (EventType::GamepadAxisMoved)
Definition: Event.h:237
GamepadButtonEvent gamepadButton
Gamepad button event parameters (EventType::GamepadButtonPressed, EventType::GamepadButtonReleased)
Definition: Event.h:236
MouseButtonEvent mouseButton
Mouse button event parameters (EventType::MouseButtonPressed, EventType::MouseButtonReleased)
Definition: Event.h:233
uint32_t timestamp
A timestamp.
Definition: Event.h:226
GamepadConnectionEvent gamepadConnection
Gamepad connection event parameters (EventType::GamepadConnected)
Definition: Event.h:238
MouseWheelEvent mouseWheel
Mouse wheel event parameters (EventType::MouseWheelScrolled)
Definition: Event.h:235
GamepadDisconnectionEvent gamepadDisconnection
Gamepad disconnection event parameters (EventType::GamepadDisconnected)
Definition: Event.h:239
KeyEvent key
Key event parameters (EventType::KeyPressed, EventType::KeyReleased, EventType::KeyRepeated)
Definition: Event.h:231
ResizeEvent resize
Size event parameters (EventType::Resized)
Definition: Event.h:230
Gamepad axis event parameters (EventType::GamepadAxisMoved)
Definition: Event.h:166
GamepadAxis axis
Axis of the gamepad.
Definition: Event.h:168
int16_t value
Value of the axis.
Definition: Event.h:169
GamepadId id
Id of the gamepad.
Definition: Event.h:167
Gamepad button event parameters (EventType::GamepadButtonPressed, EventType::GamepadButtonReleased)
Definition: Event.h:157
GamepadButton button
Button of the gamepad.
Definition: Event.h:159
GamepadId id
Id of the gamepad.
Definition: Event.h:158
Gamepad connection event parameters (EventType::GamepadConnected)
Definition: Event.h:176
GamepadHwId id
Hardware id of the gamepad.
Definition: Event.h:177
Gamepad disconnection event parameters (EventType::GamepadDisconnected)
Definition: Event.h:184
GamepadId id
Id of the gamepad.
Definition: Event.h:185
Keyboard event parameters (EventType::KeyPressed, EventType::KeyReleased, EventType::KeyRepeated)
Definition: Event.h:107
Flags< Mod > modifiers
Modifiers that are pressed.
Definition: Event.h:111
uint32_t windowId
The window id of the event.
Definition: Event.h:108
Scancode scancode
Scancode of the key.
Definition: Event.h:110
Keycode keycode
Keycode of the key.
Definition: Event.h:109
Mouse button event parameters (EventType::MouseButtonPressed, EventType::MouseButtonReleased)
Definition: Event.h:127
Vector2i coords
Position of the mouse cursor.
Definition: Event.h:130
MouseButton button
Code of the button that has been pressed.
Definition: Event.h:129
uint8_t clicks
Number of clicks.
Definition: Event.h:131
uint32_t windowId
The window id of the event.
Definition: Event.h:128
Mouse cursor move event parameters (EventType::MouseMoved)
Definition: Event.h:138
Vector2i motion
Relative position of the mouse cursor.
Definition: Event.h:141
Vector2i coords
Position of the mouse cursor.
Definition: Event.h:140
uint32_t windowId
The window id of the event.
Definition: Event.h:139
Mouse wheel event parameters (EventType::MouseWheelScrolled)
Definition: Event.h:148
Vector2i offset
Offset of the mouse wheel.
Definition: Event.h:150
uint32_t windowId
The window id of the event.
Definition: Event.h:149
Resize event parameters (EventType::Resized)
Definition: Event.h:98
uint32_t windowId
The window id of the event.
Definition: Event.h:99
Vector2i size
The new size of the window.
Definition: Event.h:100
A character encoded in UTF-8.
Definition: Rune.h:37
Text event parameters (EventType::TextEntered)
Definition: Event.h:118
Rune rune
The rune.
Definition: Event.h:120
uint32_t windowId
The window id of the event.
Definition: Event.h:119
Touch event parameters (EventType::TouchBegan, EventType::TouchMoved, EventType::TouchEnded)
Definition: Event.h:192
Vector2i coords
Position of the touch.
Definition: Event.h:194
float pressure
The pressure applied (between 0 and 1)
Definition: Event.h:196
int64_t finger
Finger that touched.
Definition: Event.h:193
Vector2i motion
Relative position of the touch.
Definition: Event.h:195
Window event parameters (EventType::Closed, EventType::FocusGained, EventType::FocusLost,...
Definition: Event.h:90
uint32_t windowId
The window id of the event.
Definition: Event.h:91