Documentation
From my personal library, The Internet

man page:


STRUCTURE 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

       type                The type of event

       active              Activation event

       key                 Keyboard event

       motion              Mouse motion event

       button              Mouse button event

       jaxis               Joystick axis motion event

       jball               Joystick trackball motion event

       jhat                Joystick hat motion event

       jbutton             Joystick button event

       resize              Application window resize event

       expose              Application window expose event

       quit                Application quit request event

       user                User defined event

       syswm               Undefined window manager event


DESCRIPTION

       The SDL_Event union is the core to all event handling is SDL, its prob-
       ably 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
       SDL_JOYAXISMOTION   SDL_JoyAxisEvent

       SDL_JOYBALLMOTION   SDL_JoyBallEvent

       SDL_JOYHATMOTION    SDL_JoyHatEvent

       SDL_JOYBUTTONDOWN/UP
                           SDL_JoyButtonEvent

       SDL_QUIT            SDL_QuitEvent

       SDL_SYSWMEVENT      SDL_SysWMEvent

       SDL_VIDEORESIZE     SDL_ResizeEvent

       SDL_VIDEOEXPOSE     SDL_ExposeEvent

       SDL_USEREVENT       SDL_UserEvent


USE

       The SDL_Event structure has two uses

          o  Reading events on the event queue

          o  Placing events on the event queue

       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;

        SDL_PollEvent removes the next event from the event  queue,  if  there
       are  no events on the queue it returns 0 otherwise it returns 1. We use
       a while loop to process each event in turn.

       while(SDL_PollEvent(&test_event)) {

        The SDL_PollEvent function take a pointer to  an  SDL_Event  structure
       that  is  to  be  filled  with  event  information.  We  know  that  if
       SDL_PollEvent removes an event from the queue then the  event  informa-
       tion  will be placed in our test_event structure, but we also know that
       the type of event will be placed in the type member of  test_event.  So
       to handle each event type seperately we use a switch statement.

         switch(test_event.type) {

        We  need  to  know what kind of events we're looking for and the event
       type's of those events. So lets assume we want to detect where the user
       is moving the mouse pointer within our application. We look through our
       event types and notice that SDL_MOUSEMOTION is, more than  likely,  the
             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 ALSO

       SDL_PollEvent, SDL_PushEvent, SDL_PeepEvents



SDL                         Tue 11 Sep 2001, 22:59                SDL_Event(3)

Man(1) output converted with man2html