/Users/hercules/trunk/SDL-1.2/include/SDL_events.h File Reference

#include "SDL_stdinc.h"
#include "SDL_error.h"
#include "SDL_active.h"
#include "SDL_keyboard.h"
#include "SDL_mouse.h"
#include "SDL_joystick.h"
#include "SDL_quit.h"
#include "begin_code.h"
#include "close_code.h"

Go to the source code of this file.

Data Structures

struct  SDL_ActiveEvent
struct  SDL_KeyboardEvent
struct  SDL_MouseMotionEvent
struct  SDL_MouseButtonEvent
struct  SDL_JoyAxisEvent
struct  SDL_JoyBallEvent
struct  SDL_JoyHatEvent
struct  SDL_JoyButtonEvent
struct  SDL_ResizeEvent
struct  SDL_ExposeEvent
struct  SDL_QuitEvent
struct  SDL_UserEvent
struct  SDL_SysWMEvent
union  SDL_Event

Defines

General keyboard/mouse state definitions


#define SDL_RELEASED   0
#define SDL_PRESSED   1
Event State


#define SDL_QUERY   -1
#define SDL_IGNORE   0
#define SDL_DISABLE   0
#define SDL_ENABLE   1

Typedefs

typedef struct SDL_SysWMmsg SDL_SysWMmsg

Enumerations

enum  SDL_EventType {
  SDL_NOEVENT = 0, SDL_ACTIVEEVENT, SDL_KEYDOWN, SDL_KEYUP,
  SDL_MOUSEMOTION, SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONUP, SDL_JOYAXISMOTION,
  SDL_JOYBALLMOTION, SDL_JOYHATMOTION, SDL_JOYBUTTONDOWN, SDL_JOYBUTTONUP,
  SDL_QUIT, SDL_SYSWMEVENT, SDL_EVENT_RESERVEDA, SDL_EVENT_RESERVEDB,
  SDL_VIDEORESIZE, SDL_VIDEOEXPOSE, SDL_EVENT_RESERVED2, SDL_EVENT_RESERVED3,
  SDL_EVENT_RESERVED4, SDL_EVENT_RESERVED5, SDL_EVENT_RESERVED6, SDL_EVENT_RESERVED7,
  SDL_USEREVENT = 24, SDL_NUMEVENTS = 32
}
enum  SDL_eventaction { SDL_ADDEVENT, SDL_PEEKEVENT, SDL_GETEVENT }

Functions

DECLSPEC void SDLCALL SDL_PumpEvents (void)
DECLSPEC int SDLCALL SDL_PeepEvents (SDL_Event *events, int numevents, SDL_eventaction action, Uint32 mask)
DECLSPEC int SDLCALL SDL_PollEvent (SDL_Event *event)
DECLSPEC int SDLCALL SDL_WaitEvent (SDL_Event *event)
DECLSPEC int SDLCALL SDL_PushEvent (SDL_Event *event)
DECLSPEC Uint8 SDLCALL SDL_EventState (Uint8 type, int state)

Predefined event masks



#define SDL_EVENTMASK(X)   (1<<(X))
#define SDL_ALLEVENTS   0xFFFFFFFF
enum  SDL_EventMask {
  SDL_ACTIVEEVENTMASK = SDL_EVENTMASK(SDL_ACTIVEEVENT), SDL_KEYDOWNMASK = SDL_EVENTMASK(SDL_KEYDOWN), SDL_KEYUPMASK = SDL_EVENTMASK(SDL_KEYUP), SDL_KEYEVENTMASK,
  SDL_MOUSEMOTIONMASK = SDL_EVENTMASK(SDL_MOUSEMOTION), SDL_MOUSEBUTTONDOWNMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN), SDL_MOUSEBUTTONUPMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONUP), SDL_MOUSEEVENTMASK,
  SDL_JOYAXISMOTIONMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION), SDL_JOYBALLMOTIONMASK = SDL_EVENTMASK(SDL_JOYBALLMOTION), SDL_JOYHATMOTIONMASK = SDL_EVENTMASK(SDL_JOYHATMOTION), SDL_JOYBUTTONDOWNMASK = SDL_EVENTMASK(SDL_JOYBUTTONDOWN),
  SDL_JOYBUTTONUPMASK = SDL_EVENTMASK(SDL_JOYBUTTONUP), SDL_JOYEVENTMASK, SDL_VIDEORESIZEMASK = SDL_EVENTMASK(SDL_VIDEORESIZE), SDL_VIDEOEXPOSEMASK = SDL_EVENTMASK(SDL_VIDEOEXPOSE),
  SDL_QUITMASK = SDL_EVENTMASK(SDL_QUIT), SDL_SYSWMEVENTMASK = SDL_EVENTMASK(SDL_SYSWMEVENT)
}

Event Filtering



typedef int(SDLCALL * SDL_EventFilter )(const SDL_Event *event)
DECLSPEC void SDLCALL SDL_SetEventFilter (SDL_EventFilter filter)
DECLSPEC SDL_EventFilter SDLCALL SDL_GetEventFilter (void)


Detailed Description

Include file for SDL event handling

Enumeration Type Documentation

Event enumerations

Enumerator:
SDL_NOEVENT  Unused (do not remove)
SDL_ACTIVEEVENT  Application loses/gains visibility
SDL_KEYDOWN  Keys pressed
SDL_KEYUP  Keys released
SDL_MOUSEMOTION  Mouse moved
SDL_MOUSEBUTTONDOWN  Mouse button pressed
SDL_MOUSEBUTTONUP  Mouse button released
SDL_JOYAXISMOTION  Joystick axis motion
SDL_JOYBALLMOTION  Joystick trackball motion
SDL_JOYHATMOTION  Joystick hat position change
SDL_JOYBUTTONDOWN  Joystick button pressed
SDL_JOYBUTTONUP  Joystick button released
SDL_QUIT  User-requested quit
SDL_SYSWMEVENT  System specific event
SDL_EVENT_RESERVEDA  Reserved for future use..
SDL_EVENT_RESERVEDB  Reserved for future use..
SDL_VIDEORESIZE  User resized video mode
SDL_VIDEOEXPOSE  Screen needs to be redrawn
SDL_EVENT_RESERVED2  Reserved for future use..
SDL_EVENT_RESERVED3  Reserved for future use..
SDL_EVENT_RESERVED4  Reserved for future use..
SDL_EVENT_RESERVED5  Reserved for future use..
SDL_EVENT_RESERVED6  Reserved for future use..
SDL_EVENT_RESERVED7  Reserved for future use..
SDL_USEREVENT  Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use
SDL_NUMEVENTS  This last event is only for bounding internal arrays It is the number of bits in the event mask datatype -- Uint32


Function Documentation

DECLSPEC Uint8 SDLCALL SDL_EventState ( Uint8  type,
int  state 
)

This function allows you to set the state of processing certain events. If 'state' is set to SDL_IGNORE, that event will be automatically dropped from the event queue and will not event be filtered. If 'state' is set to SDL_ENABLE, that event will be processed normally. If 'state' is set to SDL_QUERY, SDL_EventState() will return the current processing state of the specified event.

DECLSPEC SDL_EventFilter SDLCALL SDL_GetEventFilter ( void   ) 

Return the current event filter - can be used to "chain" filters. If there is no event filter set, this function returns NULL.

DECLSPEC int SDLCALL SDL_PeepEvents ( SDL_Event events,
int  numevents,
SDL_eventaction  action,
Uint32  mask 
)

Checks the event queue for messages and optionally returns them.

If 'action' is SDL_ADDEVENT, up to 'numevents' events will be added to the back of the event queue. If 'action' is SDL_PEEKEVENT, up to 'numevents' events at the front of the event queue, matching 'mask', will be returned and will not be removed from the queue. If 'action' is SDL_GETEVENT, up to 'numevents' events at the front of the event queue, matching 'mask', will be returned and will be removed from the queue.

Returns:
This function returns the number of events actually stored, or -1 if there was an error.
This function is thread-safe.

DECLSPEC int SDLCALL SDL_PollEvent ( SDL_Event event  ) 

Polls for currently pending events, and returns 1 if there are any pending events, or 0 if there are none available. If 'event' is not NULL, the next event is removed from the queue and stored in that area.

DECLSPEC void SDLCALL SDL_PumpEvents ( void   ) 

Pumps the event loop, gathering events from the input devices. This function updates the event queue and internal input device state. This should only be run in the thread that sets the video mode.

DECLSPEC int SDLCALL SDL_PushEvent ( SDL_Event event  ) 

Add an event to the event queue. This function returns 0 on success, or -1 if the event queue was full or there was some other error.

DECLSPEC void SDLCALL SDL_SetEventFilter ( SDL_EventFilter  filter  ) 

This function sets up a filter to process all events before they change internal state and are posted to the internal event queue.

The filter is protypted as:

 typedef int (SDLCALL *SDL_EventFilter)(const SDL_Event *event); 

If the filter returns 1, then the event will be added to the internal queue. If it returns 0, then the event will be dropped from the queue, but the internal state will still be updated. This allows selective filtering of dynamically arriving events.

Warning:
Be very careful of what you do in the event filter function, as it may run in a different thread!
There is one caveat when dealing with the SDL_QUITEVENT event type. The event filter is only called when the window manager desires to close the application window. If the event filter returns 1, then the window will be closed, otherwise the window will remain open if possible. If the quit event is generated by an interrupt signal, it will bypass the internal queue and be delivered to the application at the next event poll.

DECLSPEC int SDLCALL SDL_WaitEvent ( SDL_Event event  ) 

Waits indefinitely for the next available event, returning 1, or 0 if there was an error while waiting for events. If 'event' is not NULL, the next event is removed from the queue and stored in that area.


Generated on Mon Sep 21 21:29:50 2009 for Simple DirectMedia Layer by  doxygen 1.5.8