18 |
18 |
19 Sam Lantinga |
19 Sam Lantinga |
20 slouken@libsdl.org |
20 slouken@libsdl.org |
21 */ |
21 */ |
22 |
22 |
23 /* Include file for SDL event handling */ |
23 /** |
|
24 * \file SDL_events.h |
|
25 * |
|
26 * Include file for SDL event handling |
|
27 */ |
24 |
28 |
25 #ifndef _SDL_events_h |
29 #ifndef _SDL_events_h |
26 #define _SDL_events_h |
30 #define _SDL_events_h |
27 |
31 |
28 #include "SDL_stdinc.h" |
32 #include "SDL_stdinc.h" |
29 #include "SDL_error.h" |
33 #include "SDL_error.h" |
30 #include "SDL_active.h" |
34 #include "SDL_video.h" |
31 #include "SDL_keyboard.h" |
35 #include "SDL_keyboard.h" |
32 #include "SDL_mouse.h" |
36 #include "SDL_mouse.h" |
33 #include "SDL_joystick.h" |
37 #include "SDL_joystick.h" |
34 #include "SDL_quit.h" |
38 #include "SDL_quit.h" |
35 |
39 |
36 #include "begin_code.h" |
40 #include "begin_code.h" |
37 /* Set up for C function definitions, even when using C++ */ |
41 /* Set up for C function definitions, even when using C++ */ |
38 #ifdef __cplusplus |
42 #ifdef __cplusplus |
|
43 /* *INDENT-OFF* */ |
39 extern "C" { |
44 extern "C" { |
|
45 /* *INDENT-ON* */ |
40 #endif |
46 #endif |
41 |
47 |
42 /* General keyboard/mouse state definitions */ |
48 /* General keyboard/mouse state definitions */ |
43 #define SDL_RELEASED 0 |
49 #define SDL_RELEASED 0 |
44 #define SDL_PRESSED 1 |
50 #define SDL_PRESSED 1 |
45 |
51 |
46 /* Event enumerations */ |
52 /** |
47 typedef enum { |
53 * \enum SDL_EventType |
48 SDL_NOEVENT = 0, /* Unused (do not remove) */ |
54 * |
49 SDL_ACTIVEEVENT, /* Application loses/gains visibility */ |
55 * \brief The types of events that can be delivered |
50 SDL_KEYDOWN, /* Keys pressed */ |
56 */ |
51 SDL_KEYUP, /* Keys released */ |
57 typedef enum |
52 SDL_MOUSEMOTION, /* Mouse moved */ |
58 { |
53 SDL_MOUSEBUTTONDOWN, /* Mouse button pressed */ |
59 SDL_NOEVENT = 0, /**< Unused (do not remove) */ |
54 SDL_MOUSEBUTTONUP, /* Mouse button released */ |
60 SDL_WINDOWEVENT, /**< Window state change */ |
55 SDL_JOYAXISMOTION, /* Joystick axis motion */ |
61 SDL_KEYDOWN, /**< Keys pressed */ |
56 SDL_JOYBALLMOTION, /* Joystick trackball motion */ |
62 SDL_KEYUP, /**< Keys released */ |
57 SDL_JOYHATMOTION, /* Joystick hat position change */ |
63 SDL_TEXTINPUT, /**< Keyboard text input */ |
58 SDL_JOYBUTTONDOWN, /* Joystick button pressed */ |
64 SDL_MOUSEMOTION, /**< Mouse moved */ |
59 SDL_JOYBUTTONUP, /* Joystick button released */ |
65 SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */ |
60 SDL_QUIT, /* User-requested quit */ |
66 SDL_MOUSEBUTTONUP, /**< Mouse button released */ |
61 SDL_SYSWMEVENT, /* System specific event */ |
67 SDL_MOUSEWHEEL, /**< Mouse wheel motion */ |
62 SDL_EVENT_RESERVEDA, /* Reserved for future use.. */ |
68 SDL_JOYAXISMOTION, /**< Joystick axis motion */ |
63 SDL_EVENT_RESERVEDB, /* Reserved for future use.. */ |
69 SDL_JOYBALLMOTION, /**< Joystick trackball motion */ |
64 SDL_VIDEORESIZE, /* User resized video mode */ |
70 SDL_JOYHATMOTION, /**< Joystick hat position change */ |
65 SDL_VIDEOEXPOSE, /* Screen needs to be redrawn */ |
71 SDL_JOYBUTTONDOWN, /**< Joystick button pressed */ |
66 SDL_EVENT_RESERVED2, /* Reserved for future use.. */ |
72 SDL_JOYBUTTONUP, /**< Joystick button released */ |
67 SDL_EVENT_RESERVED3, /* Reserved for future use.. */ |
73 SDL_QUIT, /**< User-requested quit */ |
68 SDL_EVENT_RESERVED4, /* Reserved for future use.. */ |
74 SDL_SYSWMEVENT, /**< System specific event */ |
69 SDL_EVENT_RESERVED5, /* Reserved for future use.. */ |
75 SDL_EVENT_RESERVED1, /**< Reserved for future use... */ |
70 SDL_EVENT_RESERVED6, /* Reserved for future use.. */ |
76 SDL_EVENT_RESERVED2, /**< Reserved for future use... */ |
71 SDL_EVENT_RESERVED7, /* Reserved for future use.. */ |
77 SDL_EVENT_RESERVED3, /**< Reserved for future use... */ |
72 /* Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use */ |
78 /* Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use */ |
73 SDL_USEREVENT = 24, |
79 SDL_USEREVENT = 24, |
74 /* This last event is only for bounding internal arrays |
80 /* This last event is only for bounding internal arrays |
75 It is the number of bits in the event mask datatype -- Uint32 |
81 It is the number of bits in the event mask datatype -- Uint32 |
76 */ |
82 */ |
77 SDL_NUMEVENTS = 32 |
83 SDL_NUMEVENTS = 32 |
78 } SDL_EventType; |
84 } SDL_EventType; |
79 |
85 |
80 /* Predefined event masks */ |
86 /** |
|
87 * \enum SDL_EventMask |
|
88 * |
|
89 * \brief Predefined event masks |
|
90 */ |
81 #define SDL_EVENTMASK(X) (1<<(X)) |
91 #define SDL_EVENTMASK(X) (1<<(X)) |
82 typedef enum { |
92 typedef enum |
83 SDL_ACTIVEEVENTMASK = SDL_EVENTMASK(SDL_ACTIVEEVENT), |
93 { |
84 SDL_KEYDOWNMASK = SDL_EVENTMASK(SDL_KEYDOWN), |
94 SDL_WINDOWEVENTMASK = SDL_EVENTMASK(SDL_WINDOWEVENT), |
85 SDL_KEYUPMASK = SDL_EVENTMASK(SDL_KEYUP), |
95 SDL_KEYDOWNMASK = SDL_EVENTMASK(SDL_KEYDOWN), |
86 SDL_KEYEVENTMASK = SDL_EVENTMASK(SDL_KEYDOWN)| |
96 SDL_KEYUPMASK = SDL_EVENTMASK(SDL_KEYUP), |
87 SDL_EVENTMASK(SDL_KEYUP), |
97 SDL_KEYEVENTMASK = SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP), |
88 SDL_MOUSEMOTIONMASK = SDL_EVENTMASK(SDL_MOUSEMOTION), |
98 SDL_TEXTINPUTMASK = SDL_EVENTMASK(SDL_TEXTINPUT), |
89 SDL_MOUSEBUTTONDOWNMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN), |
99 SDL_MOUSEMOTIONMASK = SDL_EVENTMASK(SDL_MOUSEMOTION), |
90 SDL_MOUSEBUTTONUPMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONUP), |
100 SDL_MOUSEBUTTONDOWNMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN), |
91 SDL_MOUSEEVENTMASK = SDL_EVENTMASK(SDL_MOUSEMOTION)| |
101 SDL_MOUSEBUTTONUPMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONUP), |
92 SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN)| |
102 SDL_MOUSEWHEELMASK = SDL_EVENTMASK(SDL_MOUSEWHEEL), |
93 SDL_EVENTMASK(SDL_MOUSEBUTTONUP), |
103 SDL_MOUSEEVENTMASK = SDL_EVENTMASK(SDL_MOUSEMOTION) | |
94 SDL_JOYAXISMOTIONMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION), |
104 SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP), |
95 SDL_JOYBALLMOTIONMASK = SDL_EVENTMASK(SDL_JOYBALLMOTION), |
105 SDL_JOYAXISMOTIONMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION), |
96 SDL_JOYHATMOTIONMASK = SDL_EVENTMASK(SDL_JOYHATMOTION), |
106 SDL_JOYBALLMOTIONMASK = SDL_EVENTMASK(SDL_JOYBALLMOTION), |
97 SDL_JOYBUTTONDOWNMASK = SDL_EVENTMASK(SDL_JOYBUTTONDOWN), |
107 SDL_JOYHATMOTIONMASK = SDL_EVENTMASK(SDL_JOYHATMOTION), |
98 SDL_JOYBUTTONUPMASK = SDL_EVENTMASK(SDL_JOYBUTTONUP), |
108 SDL_JOYBUTTONDOWNMASK = SDL_EVENTMASK(SDL_JOYBUTTONDOWN), |
99 SDL_JOYEVENTMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION)| |
109 SDL_JOYBUTTONUPMASK = SDL_EVENTMASK(SDL_JOYBUTTONUP), |
100 SDL_EVENTMASK(SDL_JOYBALLMOTION)| |
110 SDL_JOYEVENTMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION) | |
101 SDL_EVENTMASK(SDL_JOYHATMOTION)| |
111 SDL_EVENTMASK(SDL_JOYBALLMOTION) | |
102 SDL_EVENTMASK(SDL_JOYBUTTONDOWN)| |
112 SDL_EVENTMASK(SDL_JOYHATMOTION) | |
103 SDL_EVENTMASK(SDL_JOYBUTTONUP), |
113 SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP), |
104 SDL_VIDEORESIZEMASK = SDL_EVENTMASK(SDL_VIDEORESIZE), |
114 SDL_QUITMASK = SDL_EVENTMASK(SDL_QUIT), |
105 SDL_VIDEOEXPOSEMASK = SDL_EVENTMASK(SDL_VIDEOEXPOSE), |
115 SDL_SYSWMEVENTMASK = SDL_EVENTMASK(SDL_SYSWMEVENT) |
106 SDL_QUITMASK = SDL_EVENTMASK(SDL_QUIT), |
116 } SDL_EventMask; |
107 SDL_SYSWMEVENTMASK = SDL_EVENTMASK(SDL_SYSWMEVENT) |
|
108 } SDL_EventMask ; |
|
109 #define SDL_ALLEVENTS 0xFFFFFFFF |
117 #define SDL_ALLEVENTS 0xFFFFFFFF |
110 |
118 |
111 /* Application visibility event structure */ |
119 /** |
112 typedef struct SDL_ActiveEvent { |
120 * \struct SDL_WindowEvent |
113 Uint8 type; /* SDL_ACTIVEEVENT */ |
121 * |
114 Uint8 gain; /* Whether given states were gained or lost (1/0) */ |
122 * \brief Window state change event data |
115 Uint8 state; /* A mask of the focus states */ |
123 */ |
116 } SDL_ActiveEvent; |
124 typedef struct SDL_WindowEvent |
117 |
125 { |
118 /* Keyboard event structure */ |
126 Uint8 type; /**< SDL_WINDOWEVENT */ |
119 typedef struct SDL_KeyboardEvent { |
127 Uint8 event; /**< SDL_WindowEventID */ |
120 Uint8 type; /* SDL_KEYDOWN or SDL_KEYUP */ |
128 int data1; /**< event dependent data */ |
121 Uint8 which; /* The keyboard device index */ |
129 int data2; /**< event dependent data */ |
122 Uint8 state; /* SDL_PRESSED or SDL_RELEASED */ |
130 SDL_WindowID windowID; /**< The associated window */ |
123 SDL_keysym keysym; |
131 } SDL_WindowEvent; |
|
132 |
|
133 /** |
|
134 * \struct SDL_KeyboardEvent |
|
135 * |
|
136 * \brief Keyboard button event structure |
|
137 */ |
|
138 typedef struct SDL_KeyboardEvent |
|
139 { |
|
140 Uint8 type; /**< SDL_KEYDOWN or SDL_KEYUP */ |
|
141 Uint8 which; /**< The keyboard device index */ |
|
142 Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ |
|
143 SDL_keysym keysym; /**< The key that was pressed or released */ |
|
144 SDL_WindowID windowID; /**< The window with keyboard focus, if any */ |
124 } SDL_KeyboardEvent; |
145 } SDL_KeyboardEvent; |
125 |
146 |
126 /* Mouse motion event structure */ |
147 /** |
127 typedef struct SDL_MouseMotionEvent { |
148 * \struct SDL_TextInputEvent |
128 Uint8 type; /* SDL_MOUSEMOTION */ |
149 * |
129 Uint8 which; /* The mouse device index */ |
150 * \brief Keyboard text input event structure |
130 Uint8 state; /* The current button state */ |
151 */ |
131 Uint16 x, y; /* The X/Y coordinates of the mouse */ |
152 typedef struct SDL_TextInputEvent |
132 Sint16 xrel; /* The relative motion in the X direction */ |
153 { |
133 Sint16 yrel; /* The relative motion in the Y direction */ |
154 Uint8 type; /**< SDL_TEXTINPUT */ |
|
155 Uint8 which; /**< The keyboard device index */ |
|
156 char text[32]; /**< The input text */ |
|
157 SDL_WindowID windowID; /**< The window with keyboard focus, if any */ |
|
158 } SDL_TextInputEvent; |
|
159 |
|
160 /** |
|
161 * \struct SDL_MouseMotionEvent |
|
162 * |
|
163 * \brief Mouse motion event structure |
|
164 */ |
|
165 typedef struct SDL_MouseMotionEvent |
|
166 { |
|
167 Uint8 type; /**< SDL_MOUSEMOTION */ |
|
168 Uint8 which; /**< The mouse device index */ |
|
169 Uint8 state; /**< The current button state */ |
|
170 int x; /**< X coordinate, relative to window */ |
|
171 int y; /**< Y coordinate, relative to window */ |
|
172 int xrel; /**< The relative motion in the X direction */ |
|
173 int yrel; /**< The relative motion in the Y direction */ |
|
174 SDL_WindowID windowID; /**< The window with mouse focus, if any */ |
134 } SDL_MouseMotionEvent; |
175 } SDL_MouseMotionEvent; |
135 |
176 |
136 /* Mouse button event structure */ |
177 /** |
137 typedef struct SDL_MouseButtonEvent { |
178 * \struct SDL_MouseButtonEvent |
138 Uint8 type; /* SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */ |
179 * |
139 Uint8 which; /* The mouse device index */ |
180 * \brief Mouse button event structure |
140 Uint8 button; /* The mouse button index */ |
181 */ |
141 Uint8 state; /* SDL_PRESSED or SDL_RELEASED */ |
182 typedef struct SDL_MouseButtonEvent |
142 Uint16 x, y; /* The X/Y coordinates of the mouse at press time */ |
183 { |
|
184 Uint8 type; /**< SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */ |
|
185 Uint8 which; /**< The mouse device index */ |
|
186 Uint8 button; /**< The mouse button index */ |
|
187 Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ |
|
188 int x; /**< X coordinate, relative to window */ |
|
189 int y; /**< Y coordinate, relative to window */ |
|
190 SDL_WindowID windowID; /**< The window with mouse focus, if any */ |
143 } SDL_MouseButtonEvent; |
191 } SDL_MouseButtonEvent; |
144 |
192 |
145 /* Joystick axis motion event structure */ |
193 /** |
146 typedef struct SDL_JoyAxisEvent { |
194 * \struct SDL_MouseWheelEvent |
147 Uint8 type; /* SDL_JOYAXISMOTION */ |
195 * |
148 Uint8 which; /* The joystick device index */ |
196 * \brief Mouse wheel event structure |
149 Uint8 axis; /* The joystick axis index */ |
197 */ |
150 Sint16 value; /* The axis value (range: -32768 to 32767) */ |
198 typedef struct SDL_MouseWheelEvent |
|
199 { |
|
200 Uint8 type; /**< SDL_MOUSEWHEEL */ |
|
201 Uint8 which; /**< The mouse device index */ |
|
202 int motion; /**< The direction and distance scrolled */ |
|
203 SDL_WindowID windowID; /**< The window with mouse focus, if any */ |
|
204 } SDL_MouseWheelEvent; |
|
205 |
|
206 /** |
|
207 * \struct SDL_JoyAxisEvent |
|
208 * |
|
209 * \brief Joystick axis motion event structure |
|
210 */ |
|
211 typedef struct SDL_JoyAxisEvent |
|
212 { |
|
213 Uint8 type; /**< SDL_JOYAXISMOTION */ |
|
214 Uint8 which; /**< The joystick device index */ |
|
215 Uint8 axis; /**< The joystick axis index */ |
|
216 int value; /**< The axis value (range: -32768 to 32767) */ |
151 } SDL_JoyAxisEvent; |
217 } SDL_JoyAxisEvent; |
152 |
218 |
153 /* Joystick trackball motion event structure */ |
219 /** |
154 typedef struct SDL_JoyBallEvent { |
220 * \struct SDL_JoyBallEvent |
155 Uint8 type; /* SDL_JOYBALLMOTION */ |
221 * |
156 Uint8 which; /* The joystick device index */ |
222 * \brief Joystick trackball motion event structure |
157 Uint8 ball; /* The joystick trackball index */ |
223 */ |
158 Sint16 xrel; /* The relative motion in the X direction */ |
224 typedef struct SDL_JoyBallEvent |
159 Sint16 yrel; /* The relative motion in the Y direction */ |
225 { |
|
226 Uint8 type; /**< SDL_JOYBALLMOTION */ |
|
227 Uint8 which; /**< The joystick device index */ |
|
228 Uint8 ball; /**< The joystick trackball index */ |
|
229 int xrel; /**< The relative motion in the X direction */ |
|
230 int yrel; /**< The relative motion in the Y direction */ |
160 } SDL_JoyBallEvent; |
231 } SDL_JoyBallEvent; |
161 |
232 |
162 /* Joystick hat position change event structure */ |
233 /** |
163 typedef struct SDL_JoyHatEvent { |
234 * \struct SDL_JoyHatEvent |
164 Uint8 type; /* SDL_JOYHATMOTION */ |
235 * |
165 Uint8 which; /* The joystick device index */ |
236 * \brief Joystick hat position change event structure |
166 Uint8 hat; /* The joystick hat index */ |
237 */ |
167 Uint8 value; /* The hat position value: |
238 typedef struct SDL_JoyHatEvent |
168 SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP |
239 { |
169 SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT |
240 Uint8 type; /**< SDL_JOYHATMOTION */ |
170 SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN |
241 Uint8 which; /**< The joystick device index */ |
171 Note that zero means the POV is centered. |
242 Uint8 hat; /**< The joystick hat index */ |
172 */ |
243 Uint8 value; /**< The hat position value: |
|
244 SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP |
|
245 SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT |
|
246 SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN |
|
247 Note that zero means the POV is centered. |
|
248 */ |
173 } SDL_JoyHatEvent; |
249 } SDL_JoyHatEvent; |
174 |
250 |
175 /* Joystick button event structure */ |
251 /** |
176 typedef struct SDL_JoyButtonEvent { |
252 * \struct SDL_JoyButtonEvent |
177 Uint8 type; /* SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */ |
253 * |
178 Uint8 which; /* The joystick device index */ |
254 * \brief Joystick button event structure |
179 Uint8 button; /* The joystick button index */ |
255 */ |
180 Uint8 state; /* SDL_PRESSED or SDL_RELEASED */ |
256 typedef struct SDL_JoyButtonEvent |
|
257 { |
|
258 Uint8 type; /**< SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */ |
|
259 Uint8 which; /**< The joystick device index */ |
|
260 Uint8 button; /**< The joystick button index */ |
|
261 Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ |
181 } SDL_JoyButtonEvent; |
262 } SDL_JoyButtonEvent; |
182 |
263 |
183 /* The "window resized" event |
264 /** |
184 When you get this event, you are responsible for setting a new video |
265 * \struct SDL_QuitEvent |
185 mode with the new width and height. |
266 * |
186 */ |
267 * \brief The "quit requested" event |
187 typedef struct SDL_ResizeEvent { |
268 */ |
188 Uint8 type; /* SDL_VIDEORESIZE */ |
269 typedef struct SDL_QuitEvent |
189 int w; /* New width */ |
270 { |
190 int h; /* New height */ |
271 Uint8 type; /**< SDL_QUIT */ |
191 } SDL_ResizeEvent; |
|
192 |
|
193 /* The "screen redraw" event */ |
|
194 typedef struct SDL_ExposeEvent { |
|
195 Uint8 type; /* SDL_VIDEOEXPOSE */ |
|
196 } SDL_ExposeEvent; |
|
197 |
|
198 /* The "quit requested" event */ |
|
199 typedef struct SDL_QuitEvent { |
|
200 Uint8 type; /* SDL_QUIT */ |
|
201 } SDL_QuitEvent; |
272 } SDL_QuitEvent; |
202 |
273 |
203 /* A user-defined event type */ |
274 /** |
204 typedef struct SDL_UserEvent { |
275 * \struct SDL_UserEvent |
205 Uint8 type; /* SDL_USEREVENT through SDL_NUMEVENTS-1 */ |
276 * |
206 int code; /* User defined event code */ |
277 * \brief A user-defined event type |
207 void *data1; /* User defined data pointer */ |
278 */ |
208 void *data2; /* User defined data pointer */ |
279 typedef struct SDL_UserEvent |
|
280 { |
|
281 Uint8 type; /**< SDL_USEREVENT through SDL_NUMEVENTS-1 */ |
|
282 int code; /**< User defined event code */ |
|
283 void *data1; /**< User defined data pointer */ |
|
284 void *data2; /**< User defined data pointer */ |
209 } SDL_UserEvent; |
285 } SDL_UserEvent; |
210 |
286 |
211 /* If you want to use this event, you should include SDL_syswm.h */ |
287 /** |
|
288 * \struct SDL_SysWMEvent |
|
289 * |
|
290 * \brief A video driver dependent system event |
|
291 * |
|
292 * \note If you want to use this event, you should include SDL_syswm.h |
|
293 */ |
212 struct SDL_SysWMmsg; |
294 struct SDL_SysWMmsg; |
213 typedef struct SDL_SysWMmsg SDL_SysWMmsg; |
295 typedef struct SDL_SysWMmsg SDL_SysWMmsg; |
214 typedef struct SDL_SysWMEvent { |
296 typedef struct SDL_SysWMEvent |
215 Uint8 type; |
297 { |
216 SDL_SysWMmsg *msg; |
298 Uint8 type; /**< SDL_SYSWMEVENT */ |
|
299 SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ |
217 } SDL_SysWMEvent; |
300 } SDL_SysWMEvent; |
218 |
301 |
219 /* General event structure */ |
302 /* Typedefs for backwards compatibility */ |
220 typedef union SDL_Event { |
303 typedef struct SDL_ActiveEvent |
221 Uint8 type; |
304 { |
222 SDL_ActiveEvent active; |
305 Uint8 type; |
223 SDL_KeyboardEvent key; |
306 Uint8 gain; |
224 SDL_MouseMotionEvent motion; |
307 Uint8 state; |
225 SDL_MouseButtonEvent button; |
308 } SDL_ActiveEvent; |
226 SDL_JoyAxisEvent jaxis; |
309 typedef struct SDL_ResizeEvent |
227 SDL_JoyBallEvent jball; |
310 { |
228 SDL_JoyHatEvent jhat; |
311 Uint8 type; |
229 SDL_JoyButtonEvent jbutton; |
312 int w; |
230 SDL_ResizeEvent resize; |
313 int h; |
231 SDL_ExposeEvent expose; |
314 } SDL_ResizeEvent; |
232 SDL_QuitEvent quit; |
315 |
233 SDL_UserEvent user; |
316 /** |
234 SDL_SysWMEvent syswm; |
317 * \union SDL_Event |
|
318 * |
|
319 * \brief General event structure |
|
320 */ |
|
321 typedef union SDL_Event |
|
322 { |
|
323 Uint8 type; /**< Event type, shared with all events */ |
|
324 SDL_WindowEvent window; /**< Window event data */ |
|
325 SDL_KeyboardEvent key; /**< Keyboard event data */ |
|
326 SDL_TextInputEvent text; /**< Text input event data */ |
|
327 SDL_MouseMotionEvent motion; /**< Mouse motion event data */ |
|
328 SDL_MouseButtonEvent button; /**< Mouse button event data */ |
|
329 SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */ |
|
330 SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */ |
|
331 SDL_JoyBallEvent jball; /**< Joystick ball event data */ |
|
332 SDL_JoyHatEvent jhat; /**< Joystick hat event data */ |
|
333 SDL_JoyButtonEvent jbutton; /**< Joystick button event data */ |
|
334 SDL_QuitEvent quit; /**< Quit request event data */ |
|
335 SDL_UserEvent user; /**< Custom event data */ |
|
336 SDL_SysWMEvent syswm; /**< System dependent window event data */ |
|
337 |
|
338 /* Temporarily here for backwards compatibility */ |
|
339 SDL_ActiveEvent active; |
|
340 SDL_ResizeEvent resize; |
235 } SDL_Event; |
341 } SDL_Event; |
236 |
342 |
237 |
343 |
238 /* Function prototypes */ |
344 /* Function prototypes */ |
239 |
345 |