SDL_Event man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

SDL_Event(3)		SDL API Reference	     SDL_Event(3)

NAME
       SDL_Event- General event structure

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	 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.

       Event type	   Event Structure

       SDL_ACTIVEEVENT	   SDL_ActiveEvent

       SDL_KEYDOWN/UP	   SDL_KeyboardEvent

       SDL_MOUSEMOTION	   SDL_MouseMotionEvent

       SDL_MOUSEBUTTONDOWN/UP
			   SDL_MouseButtonEvent

       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  information	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
       event we're looking for. A little more research tells  use
       that   SDL_MOUSEMOTION	events	are  handled  within  the
       SDL_MouseMotionEvent structure which is the motion  member
       of  SDL_Event.  We can check for the SDL_MOUSEMOTION event
       type within our switch statement like so:

	   case SDL_MOUSEMOTION:

	All we need do now is read the	information  out  of  the
       motion member of test_event.

	     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 ALSO
       SDL_PollEvent, SDL_PushEvent, SDL_PeepEvents

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

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net