Event.hpp
1 //
3 // SFML - Simple and Fast Multimedia Library
4 // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org)
5 //
6 // This software is provided 'as-is', without any express or implied warranty.
7 // In no event will the authors be held liable for any damages 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 freely,
11 // subject to the following restrictions:
12 //
13 // 1. The origin of this software must not be misrepresented;
14 // you must not claim that you wrote the original software.
15 // If you use this software in a product, an acknowledgment
16 // in the product documentation would be appreciated but is not required.
17 //
18 // 2. Altered source versions must be plainly marked as such,
19 // and must not be misrepresented as being the original software.
20 //
21 // 3. This notice may not be removed or altered from any source distribution.
22 //
24 
25 #ifndef SFML_EVENT_HPP
26 #define SFML_EVENT_HPP
27 
29 // Headers
31 #include <SFML/Config.hpp>
32 #include <SFML/Window/Joystick.hpp>
33 #include <SFML/Window/Keyboard.hpp>
34 #include <SFML/Window/Mouse.hpp>
35 #include <SFML/Window/Sensor.hpp>
36 
37 
38 namespace sf
39 {
44 class Event
45 {
46 public:
47 
52  struct SizeEvent
53  {
54  unsigned int width;
55  unsigned int height;
56  };
57 
62  struct KeyEvent
63  {
65  bool alt;
66  bool control;
67  bool shift;
68  bool system;
69  };
70 
75  struct TextEvent
76  {
77  Uint32 unicode;
78  };
79 
85  {
86  int x;
87  int y;
88  };
89 
96  {
98  int x;
99  int y;
100  };
101 
110  {
111  int delta;
112  int x;
113  int y;
114  };
115 
121  {
123  float delta;
124  int x;
125  int y;
126  };
127 
134  {
135  unsigned int joystickId;
136  };
137 
143  {
144  unsigned int joystickId;
146  float position;
147  };
148 
155  {
156  unsigned int joystickId;
157  unsigned int button;
158  };
159 
164  struct TouchEvent
165  {
166  unsigned int finger;
167  int x;
168  int y;
169  };
170 
175  struct SensorEvent
176  {
178  float x;
179  float y;
180  float z;
181  };
182 
188  {
212 
214  };
215 
217  // Member data
220 
221  union
222  {
235  };
236 };
237 
238 } // namespace sf
239 
240 
241 #endif // SFML_EVENT_HPP
242 
243 
Keyboard::Key code
Code of the key that has been pressed.
Definition: Event.hpp:64
float delta
Wheel offset (positive is up/left, negative is down/right). High-precision mice may use non-integral ...
Definition: Event.hpp:123
A joystick button was pressed (data in event.joystickButton)
Definition: Event.hpp:203
A joystick was disconnected (data in event.joystickConnect)
Definition: Event.hpp:207
int y
Y position of the mouse pointer, relative to the top of the owner window.
Definition: Event.hpp:113
The window lost the focus (no data)
Definition: Event.hpp:191
int x
X position of the mouse pointer, relative to the left of the owner window.
Definition: Event.hpp:98
Joystick buttons events parameters (JoystickButtonPressed, JoystickButtonReleased) ...
Definition: Event.hpp:154
The mouse cursor moved (data in event.mouseMove)
Definition: Event.hpp:200
Keep last – the total number of event types.
Definition: Event.hpp:213
Keyboard event parameters (KeyPressed, KeyReleased)
Definition: Event.hpp:62
unsigned int joystickId
Index of the joystick (in range [0 .. Joystick::Count - 1])
Definition: Event.hpp:144
A joystick was connected (data in event.joystickConnect)
Definition: Event.hpp:206
A touch event ended (data in event.touch)
Definition: Event.hpp:210
int y
Y position of the mouse pointer, relative to the top of the owner window.
Definition: Event.hpp:87
Mouse move event parameters (MouseMoved)
Definition: Event.hpp:84
A character was entered (data in event.text)
Definition: Event.hpp:193
int x
X position of the touch, relative to the left of the owner window.
Definition: Event.hpp:167
bool alt
Is the Alt key pressed?
Definition: Event.hpp:65
unsigned int height
New height, in pixels.
Definition: Event.hpp:55
KeyEvent key
Key event parameters (Event::KeyPressed, Event::KeyReleased)
Definition: Event.hpp:224
The window gained the focus (no data)
Definition: Event.hpp:192
float y
Current value of the sensor on Y axis.
Definition: Event.hpp:179
Sensor event parameters (SensorChanged)
Definition: Event.hpp:175
SensorEvent sensor
Sensor event parameters (Event::SensorChanged)
Definition: Event.hpp:234
A touch event began (data in event.touch)
Definition: Event.hpp:208
TextEvent text
Text event parameters (Event::TextEntered)
Definition: Event.hpp:225
TouchEvent touch
Touch events parameters (Event::TouchBegan, Event::TouchMoved, Event::TouchEnded) ...
Definition: Event.hpp:233
Axis
Axes supported by SFML joysticks.
Definition: Joystick.hpp:60
Type
Sensor type.
Definition: Sensor.hpp:50
A key was released (data in event.key)
Definition: Event.hpp:195
The window was resized (data in event.size)
Definition: Event.hpp:190
unsigned int width
New width, in pixels.
Definition: Event.hpp:54
The window requested to be closed (no data)
Definition: Event.hpp:189
MouseButtonEvent mouseButton
Mouse button event parameters (Event::MouseButtonPressed, Event::MouseButtonReleased) ...
Definition: Event.hpp:227
The mouse cursor left the area of the window (no data)
Definition: Event.hpp:202
int delta
Number of ticks the wheel has moved (positive is up, negative is down)
Definition: Event.hpp:111
Touch events parameters (TouchBegan, TouchMoved, TouchEnded)
Definition: Event.hpp:164
The mouse wheel was scrolled (data in event.mouseWheelScroll)
Definition: Event.hpp:197
A mouse button was pressed (data in event.mouseButton)
Definition: Event.hpp:198
int x
X position of the mouse pointer, relative to the left of the owner window.
Definition: Event.hpp:124
The mouse wheel was scrolled (data in event.mouseWheel) (deprecated)
Definition: Event.hpp:196
Joystick axis move event parameters (JoystickMoved)
Definition: Event.hpp:142
JoystickMoveEvent joystickMove
Joystick move event parameters (Event::JoystickMoved)
Definition: Event.hpp:230
Wheel
Mouse wheels.
Definition: Mouse.hpp:66
Mouse wheel events parameters (MouseWheelMoved)
Definition: Event.hpp:109
Joystick::Axis axis
Axis on which the joystick moved.
Definition: Event.hpp:145
Key
Key codes.
Definition: Keyboard.hpp:48
int y
Y position of the touch, relative to the top of the owner window.
Definition: Event.hpp:168
Mouse::Wheel wheel
Which wheel (for mice with multiple ones)
Definition: Event.hpp:122
Mouse buttons events parameters (MouseButtonPressed, MouseButtonReleased)
Definition: Event.hpp:95
bool shift
Is the Shift key pressed?
Definition: Event.hpp:67
Defines a system event and its parameters.
Definition: Event.hpp:44
Button
Mouse buttons.
Definition: Mouse.hpp:51
Uint32 unicode
UTF-32 Unicode value of the character.
Definition: Event.hpp:77
JoystickConnectEvent joystickConnect
Joystick (dis)connect event parameters (Event::JoystickConnected, Event::JoystickDisconnected) ...
Definition: Event.hpp:232
MouseWheelEvent mouseWheel
Mouse wheel event parameters (Event::MouseWheelMoved) (deprecated)
Definition: Event.hpp:228
The mouse cursor entered the area of the window (no data)
Definition: Event.hpp:201
A key was pressed (data in event.key)
Definition: Event.hpp:194
MouseWheelScrollEvent mouseWheelScroll
Mouse wheel event parameters (Event::MouseWheelScrolled)
Definition: Event.hpp:229
Mouse::Button button
Code of the button that has been pressed.
Definition: Event.hpp:97
bool system
Is the System key pressed?
Definition: Event.hpp:68
int x
X position of the mouse pointer, relative to the left of the owner window.
Definition: Event.hpp:112
EventType type
Type of the event.
Definition: Event.hpp:219
int y
Y position of the mouse pointer, relative to the top of the owner window.
Definition: Event.hpp:99
bool control
Is the Control key pressed?
Definition: Event.hpp:66
A mouse button was released (data in event.mouseButton)
Definition: Event.hpp:199
Joystick connection events parameters (JoystickConnected, JoystickDisconnected)
Definition: Event.hpp:133
MouseMoveEvent mouseMove
Mouse move event parameters (Event::MouseMoved)
Definition: Event.hpp:226
unsigned int joystickId
Index of the joystick (in range [0 .. Joystick::Count - 1])
Definition: Event.hpp:156
The joystick moved along an axis (data in event.joystickMove)
Definition: Event.hpp:205
unsigned int finger
Index of the finger in case of multi-touch events.
Definition: Event.hpp:166
A joystick button was released (data in event.joystickButton)
Definition: Event.hpp:204
unsigned int joystickId
Index of the joystick (in range [0 .. Joystick::Count - 1])
Definition: Event.hpp:135
int x
X position of the mouse pointer, relative to the left of the owner window.
Definition: Event.hpp:86
Text event parameters (TextEntered)
Definition: Event.hpp:75
JoystickButtonEvent joystickButton
Joystick button event parameters (Event::JoystickButtonPressed, Event::JoystickButtonReleased) ...
Definition: Event.hpp:231
float x
Current value of the sensor on X axis.
Definition: Event.hpp:178
float position
New position on the axis (in range [-100 .. 100])
Definition: Event.hpp:146
A touch moved (data in event.touch)
Definition: Event.hpp:209
int y
Y position of the mouse pointer, relative to the top of the owner window.
Definition: Event.hpp:125
A sensor value changed (data in event.sensor)
Definition: Event.hpp:211
Sensor::Type type
Type of the sensor.
Definition: Event.hpp:177
SizeEvent size
Size event parameters (Event::Resized)
Definition: Event.hpp:223
Size events parameters (Resized)
Definition: Event.hpp:52
Mouse wheel events parameters (MouseWheelScrolled)
Definition: Event.hpp:120
unsigned int button
Index of the button that has been pressed (in range [0 .. Joystick::ButtonCount - 1]) ...
Definition: Event.hpp:157
float z
Current value of the sensor on Z axis.
Definition: Event.hpp:180
EventType
Enumeration of the different types of events.
Definition: Event.hpp:187