Copyright (C) 2000-2012 |
Manpages SDL_EventSection: SDL API Reference (3)Updated: Tue 11 Sep 2001, 22:59 Index Return to Main Contents NAMESDL_Event- General event structureSTRUCTURE DEFINITION
typedef union{ Uint8 type; SDL_ActiveEvent active; SDL_KeyboardEvent key; SDL_MouseMotionEvent motion; SDL_MouseButtonEvent button; SDL_JoyAxisEvent jaxis; SDL_JoyBallEvent jball; SDL_JoyHatEvent jhat; SDL_JoyButtonEvent jbutton; SDL_ResizeEvent resize; SDL_ExposeEvent expose; SDL_QuitEvent quit; SDL_UserEvent user; SDL_SywWMEvent syswm; } SDL_Event; STRUCTURE DATA
DESCRIPTIONThe SDL_Event union is the core to all event handling is SDL, its probably the most important structure after SDL_Surface. SDL_Event is a union of all event structures used in SDL, using it is a simple matter of knowing which union member relates to which event type.
USEThe SDL_Event structure has two uses
Reading events from the event queue is done with either SDL_PollEvent or SDL_PeepEvents. We'll use SDL_PollEvent and step through an example. First off, we create an empty SDL_Event structure.
SDL_Event test_event;
while(SDL_PollEvent(&test_event)) {
switch(test_event.type) {
case SDL_MOUSEMOTION:
printf("We got a motion event. "); printf("Current mouse position is: (%d, %d) ", test_event.motion.x, test_event.motion.y); break; default: printf("Unhandled Event! "); break; } } printf("Event queue empty. ");
It is also possible to push events onto the event queue and so use it as a two-way communication path. Both SDL_PushEvent and SDL_PeepEvents allow you to place events onto the event queue. This is usually used to place a SDL_USEREVENT on the event queue, however you could use it to post fake input events if you wished. Creating your own events is a simple matter of choosing the event type you want, setting the type member and filling the appropriate member structure with information.
SDL_Event user_event; user_event.type=SDL_USEREVENT; user_event.user.code=2; user_event.user.data1=NULL; user_event.user.data2=NULL; SDL_PushEvent(&user_event); SEE ALSOSDL_PollEvent, SDL_PushEvent, SDL_PeepEvents
IndexThis document was created by man2html, using the manual pages. Time: 00:26:05 GMT, April 18, 2024 |