.TH "SDL_Event" "3" "Tue 11 Sep 2001, 22:59" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_Event \- General event structure
.SH "STRUCTURE DEFINITION"
.PP
.nf
\f(CWtypedef 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_SysWMEvent syswm;
} SDL_Event;\fR
.fi
.PP
.SH "STRUCTURE DATA"
.TP 20
\fBtype\fR
The type of event
.TP 20
\fBactive\fR
\fIActivation event\fR
.TP 20
\fBkey\fR
\fIKeyboard event\fR
.TP 20
\fBmotion\fR
\fIMouse motion event\fR
.TP 20
\fBbutton\fR
\fIMouse button event\fR
.TP 20
\fBjaxis\fR
\fIJoystick axis motion event\fR
.TP 20
\fBjball\fR
\fIJoystick trackball motion event\fR
.TP 20
\fBjhat\fR
\fIJoystick hat motion event\fR
.TP 20
\fBjbutton\fR
\fIJoystick button event\fR
.TP 20
\fBresize\fR
\fIApplication window resize event\fR
.TP 20
\fBexpose\fR
\fIApplication window expose event\fR
.TP 20
\fBquit\fR
\fIApplication quit request event\fR
.TP 20
\fBuser\fR
\fIUser defined event\fR
.TP 20
\fBsyswm\fR
\fIUndefined window manager event\fR
.SH "DESCRIPTION"
.PP
The \fBSDL_Event\fR union is the core to all event handling is SDL, its probably the most important structure after \fBSDL_Surface\fR\&. \fBSDL_Event\fR 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 \fBtype\fR\&.
.PP
.TP 20
\fBEvent \fBtype\fR\fR
\fBEvent Structure\fR
.TP 20
\fBSDL_ACTIVEEVENT\fP
\fI\fBSDL_ActiveEvent\fR\fR
.TP 20
\fBSDL_KEYDOWN/UP\fP
\fI\fBSDL_KeyboardEvent\fR\fR
.TP 20
\fBSDL_MOUSEMOTION\fP
\fI\fBSDL_MouseMotionEvent\fR\fR
.TP 20
\fBSDL_MOUSEBUTTONDOWN/UP\fP
\fI\fBSDL_MouseButtonEvent\fR\fR
.TP 20
\fBSDL_JOYAXISMOTION\fP
\fI\fBSDL_JoyAxisEvent\fR\fR
.TP 20
\fBSDL_JOYBALLMOTION\fP
\fI\fBSDL_JoyBallEvent\fR\fR
.TP 20
\fBSDL_JOYHATMOTION\fP
\fI\fBSDL_JoyHatEvent\fR\fR
.TP 20
\fBSDL_JOYBUTTONDOWN/UP\fP
\fI\fBSDL_JoyButtonEvent\fR\fR
.TP 20
\fBSDL_QUIT\fP
\fI\fBSDL_QuitEvent\fR\fR
.TP 20
\fBSDL_SYSWMEVENT\fP
\fI\fBSDL_SysWMEvent\fR\fR
.TP 20
\fBSDL_VIDEORESIZE\fP
\fI\fBSDL_ResizeEvent\fR\fR
.TP 20
\fBSDL_VIDEOEXPOSE\fP
\fI\fBSDL_ExposeEvent\fR\fR
.TP 20
\fBSDL_USEREVENT\fP
\fI\fBSDL_UserEvent\fR\fR
.SH "USE"
.PP
The \fBSDL_Event\fR structure has two uses
.IP "   \(bu" 6
Reading events on the event queue
.IP "   \(bu" 6
Placing events on the event queue
.PP
Reading events from the event queue is done with either \fI\fBSDL_PollEvent\fP\fR or \fI\fBSDL_PeepEvents\fP\fR\&. We\&'ll use \fBSDL_PollEvent\fP and step through an example\&.
.PP
First off, we create an empty \fBSDL_Event\fR structure\&. 
.PP
.nf
\f(CWSDL_Event test_event;\fR
.fi
.PP
 \fBSDL_PollEvent\fP removes the next event from the event queue, if there are no events on the queue it returns \fB0\fR otherwise it returns \fB1\fR\&. We use a \fBwhile\fP loop to process each event in turn\&. 
.PP
.nf
\f(CWwhile(SDL_PollEvent(&test_event)) {\fR
.fi
.PP
 The \fBSDL_PollEvent\fP function take a pointer to an \fBSDL_Event\fR structure that is to be filled with event information\&. We know that if \fBSDL_PollEvent\fP removes an event from the queue then the event information will be placed in our \fBtest_event\fR structure, but we also know that the \fItype\fP of event will be placed in the \fBtype\fR member of \fBtest_event\fR\&. So to handle each event \fBtype\fR seperately we use a \fBswitch\fP statement\&. 
.PP
.nf
\f(CW  switch(test_event\&.type) {\fR
.fi
.PP
 We need to know what kind of events we\&'re looking for \fIand\fP the event \fBtype\fR\&'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 \fBSDL_MOUSEMOTION\fP is, more than likely, the event we\&'re looking for\&. A little \fImore\fR research tells use that \fBSDL_MOUSEMOTION\fP events are handled within the \fI\fBSDL_MouseMotionEvent\fR\fR structure which is the \fBmotion\fR member of \fBSDL_Event\fR\&. We can check for the \fBSDL_MOUSEMOTION\fP event \fBtype\fR within our \fBswitch\fP statement like so: 
.PP
.nf
\f(CW    case SDL_MOUSEMOTION:\fR
.fi
.PP
 All we need do now is read the information out of the \fBmotion\fR member of \fBtest_event\fR\&. 
.PP
.nf
\f(CW      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\&.
");\fR
.fi
.PP
.PP
It is also possible to push events onto the event queue and so use it as a two-way communication path\&. Both \fI\fBSDL_PushEvent\fP\fR and \fI\fBSDL_PeepEvents\fP\fR allow you to place events onto the event queue\&. This is usually used to place a \fBSDL_USEREVENT\fP 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 \fBtype\fR member and filling the appropriate member structure with information\&. 
.PP
.nf
\f(CWSDL_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);\fR
.fi
.PP
.SH "SEE ALSO"
.PP
\fI\fBSDL_PollEvent\fP\fR, \fI\fBSDL_PushEvent\fP\fR, \fI\fBSDL_PeepEvents\fP\fR
.\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:59
