Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SDLmm::EventHandler(3)	    Library Functions Manual	  SDLmm::EventHandler(3)

NAME
     SDLmm::EventHandler - The base class used for custom Event handlers.

SYNOPSIS
     #include <sdlmm_eventhandler.h>

   Public Methods
     virtual bool HandleEvent (SDL_Event &event)
	 Catch-all event handler.

     Keyboard Events

	 virtual bool HandleKeyboardEvent (SDL_keysym &keysym, bool pressed)
	     Keyboard event callback.
	 virtual bool HandleKeyPressEvent (SDL_keysym &keysym)
	     Keyboard press event callback.
	 virtual bool HandleKeyReleaseEvent (SDL_keysym &keysym)
	     Keyboard release event callback.

     Mouse Events

	 virtual  bool	HandleMouseMotionEvent (Uint8 state, Uint16 x, Uint16 y,
	     Sint16 xrel, Sint16 yrel)
	     Mouse motion event callback.
	 virtual bool HandleMouseButtonEvent (Uint8 button, Uint16 x, Uint16  y,
	     bool pressed)
	     Mouse button event callback.
	 virtual  bool	HandleMouseButtonPressEvent  (Uint8  button,  Uint16  x,
	     Uint16 y)
	     Mouse button press event callback.
	 virtual bool HandleMouseButtonReleaseEvent  (Uint8  button,  Uint16  x,
	     Uint16 y)
	     Mouse button release event callback.

     Joystick Events

	 virtual  bool	HandleJoyAxisEvent  (Uint8  joystick, Uint8 axis, Sint16
	     value)
	     Joystick axis motion event callback.
	 virtual bool HandleJoyButtonEvent (Uint8 joystick, Uint8  button,  bool
	     pressed)
	     Joystick button event callback.
	 virtual bool HandleJoyButtonPressEvent (Uint8 joystick, Uint8 button)
	     Joystick button press event callback.
	 virtual bool HandleJoyButtonReleaseEvent (Uint8 joystick, Uint8 button)
	     Joystick button release event callback.
	 virtual bool HandleJoyHatEvent (Uint8 joystick, Uint8 hat, Uint8 value)
	     Joystick hat position change event callback.
	 virtual  bool	HandleJoyBallEvent  (Uint8  joystick, Uint8 ball, Sint16
	     xrel, Sint16 yrel)
	     Joystick trackball motion event callback.

     Window / Display Events

	 virtual bool HandleActiveEvent (bool gain, Uint8 state)
	     Application visibility event callback.
	 virtual bool HandleResizeEvent (int w, int h)
	     Window resize event callback.
	 virtual bool HandleSysWMEvent ()
	     Platform-dependent window manager event callback.

     Other Events

	 virtual bool HandleUserEvent (Uint8 type, int code, void  *data1,  void
	     *data2)
	 virtual bool HandleQuitEvent ()
	     Quit requested event callback.

DETAILED DESCRIPTION
     The base class used for custom Event handlers.

     The  event handling in SDLmm is rather different to that of SDL in  that it
     uses classes derived from the EventHandler. This allows  for  clean,  type-
     safe  code  much closer to the spirit of C++ than the use of a union with a
     type field. To handle one or more events, you simply build a class  derived
     from  this,  reimplementing  the  only functions for the events you need to
     handle.

     See also:
	 Event::HandleEvents()

MEMBER FUNCTION DOCUMENTATION
   bool SDLmm::EventHandler::HandleActiveEvent (bool gain, Uint8 state) [inline,
     virtual]
     Application visibility event callback.

     This callback is called when an event of type SDL_ACTIVEEVENT is reported.

     When the mouse leaves or enters the window area  a  SDL_APPMOUSEFOCUS  type
     activation  event occurs, if the mouse entered the window then gain will be
     true, otherwise gain will be false.  A  SDL_APPINPUTFOCUS	type  activation
     event  occurs when the application loses or gains keyboard focus. This usu-
     ally occurs when another application is made  active.  Finally,  a  SDL_AP-
     PACTIVE  type  event occurs when the application is either minimised/iconi-
     fied (gain=false) or restored.

     Parameters:

     gain   false if the event is a loss or true if it's a gain

     state  SDL_APPMOUSEFOCUS if mouse focus was gained or lost, SDL_APPINPUTFO-
	    CUS if input focus was gained or lost, or SDL_APPACTIVE if	the  ap-
	    plication was iconified (gain=false) or restored (gain=true)

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleEvent (SDL_Event & event) [inline, virtual]
     Catch-all event handler.

     This method is called if none of the event specific callbacks handled event
     (i.e they returned false).

     Note:
	 It's  both  easier  and  more efficient to use the event-specific call-
	 backs, so unless you really want to do all the work yourself, you  want
	 to use those.

     Parameters:

     event  the current event

     Returns:
	 true if the event was handled, false if it was not

   bool  SDLmm::EventHandler::HandleJoyAxisEvent  (Uint8  joystick,  Uint8 axis,
     Sint16 value) [inline, virtual]
     Joystick axis motion event callback.

     This is used when an event of type SDL_JOYAXISMOTION is reported.

     A SDL_JOYAXISMOTION event occurs when ever a user moves an axis on the joy-
     stick.

     Parameters:

     joystick
	    the index of the joystick that reported the event

     axis   the index of the axis (for a more detailed explaination see the Joy-
	    stick section of the SDL manual).

     ams value is the current position of the axis.

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleJoyBallEvent  (Uint8  joystick,  Uint8  ball,
     Sint16 xrel, Sint16 yrel) [inline, virtual]
     Joystick trackball motion event callback.

     Thyis is used when an event of type SDL_JOYBALLMOTION is reported.

     A	SDL_JOYBALLMOTION event occurs when a user moves a trackball on the joy-
     stick. The field joystick is the index of the joystick  that  reported  the
     event and ball is the index of the trackball (for a more detailed explaina-
     tion  see	the  Joystick section in the SDL documentation). Trackballs only
     return relative motion, this is the change in position on the ball since it
     was last polled (last cycle of the event loop) and it is stored in xrel and
     yrel.

     Parameters:

     joystick
	    joystick device index

     ball   joystick trackbal index

     xrel, yrel
	    relative motion in the x/y directions

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleJoyButtonEvent (Uint8 joystick, Uint8 button,
     bool pressed) [inline, virtual]
     Joystick button event callback.

     This is used when an event of type SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP  is
     reported.

     These events occurs when ever a user presses or releases a button on a joy-
     stick.

     Note:
	 This function is only called if the default HandleJoyButtonPressEvent()
	 and / or HandleJoyButtonReleaseEvent() methods are used.

     Parameters:

     joystick
	    the index of the joystick that reported the event

     button
	    the  index	of  the pressed button (for a more detailed explaination
	    see the Joystick section of the SDL manual).

     pressed
	    true for SDL_JOYBUTTONDOWN, false for SDL_JOYBUTTONUP.

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleJoyButtonPressEvent	(Uint8	joystick,  Uint8
     button) [inline, virtual]
     Joystick button press event callback.

     This is used when an event of type SDL_JOYBUTTONDOWN is reported.

     A	SDL_JOYBUTTONDOWN  event  occurs  when ever a user presses a button on a
     joystick.

     Note:
	 The default declaration of this method calls the HandleJoyButtonEvent()
	 method. If you want to handle both button presses and releases  in  the
	 same method, just redefine HandleJoyButtonEvent().

     Parameters:

     joystick
	    the index of the joystick that reported the event

     button
	    the  index	of  the pressed button (for a more detailed explaination
	    see the Joystick section of the SDL manual).

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleJoyButtonReleaseEvent (Uint8 joystick,  Uint8
     button) [inline, virtual]
     Joystick button release event callback.

     This is used when an event of type SDL_JOYBUTTONUP is reported.

     A SDL_JOYBUTTONUP event occurs when ever a user releases a button on a joy-
     stick.

     Note:
	 The default declaration of this method calls the HandleJoyButtonEvent()
	 method.  If  you want to handle both button presses and releases in the
	 same method, just redefine HandleJoyButtonEvent().

     Parameters:

     joystick
	    the index of the joystick that reported the event

     button
	    the index of the released button (for a more  detailed  explaination
	    see the Joystick section of the SDL manual).

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleJoyHatEvent (Uint8 joystick, Uint8 hat, Uint8
     value) [inline, virtual]
     Joystick hat position change event callback.

     This is used when an event of type SDL_JOYHATMOTION is reported.

     A	SDL_JOYHATMOTION  event  occurs when ever a user moves a hat on the joy-
     stick. The field joystick is the index of the joystick  that  reported  the
     event  and hat is the index of the hat (for a more detailed exlaination see
     the Joystick section in the SDL documentation). value is the current  posi-
     tion of the hat. It is a logically OR'd combination of the following values
     (whose meanings should be pretty obvious):

     SDL_HAT_CENTERED

     SDL_HAT_UP

     SDL_HAT_RIGHT

     SDL_HAT_DOWN

     SDL_HAT_LEFT

     The following defines are also provided:

     SDL_HAT_RIGHTUP

     SDL_HAT_RIGHTDOWN

     SDL_HAT_LEFTUP

     SDL_HAT_LEFTDOWN

     Parameters:

     joystick
	    joystick device index

     hat    joystick hat index

     value  hat position

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool  SDLmm::EventHandler::HandleKeyPressEvent (SDL_keysym & keysym) [inline,
     virtual]
     Keyboard press event callback.

     This callback is used when an event of type SDL_KEYDOWN is reported. A key-
     board press event occurs when a key is pressed.

     Note:
	 Repeating SDL_KEYDOWN events will occur if key repeat is  enabled  (see
	 EnableKeyRepeat()).
	 The  default declaration of this method calls the HandleKeyboardEvent()
	 method. If you want to handle both key presses and key releases in  the
	 same method, just redefine HandleKeyboardEvent().

     Parameters:

     keysym
	    information about the pressed key

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool  SDLmm::EventHandler::HandleKeyReleaseEvent  (SDL_keysym  & keysym) [in-
     line, virtual]
     Keyboard release event callback.

     This callback is used when an event of type SDL_KEYUP is reported.  A  key-
     board press event occurs when a key is released.

     Parameters:

     keysym
	    the information about the released key

     Note:
	 The  default declaration of this method calls the HandleKeyboardEvent()
	 method. If you want to handle both key presses and releases in the same
	 method, just redefine HandleKeyboardEvent().

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool  SDLmm::EventHandler::HandleKeyboardEvent  (SDL_keysym	&  keysym,  bool
     pressed) [inline, virtual]
     Keyboard event callback.

     This callback is used when an event of type SDL_KEYDOWN or SDL_KEYUP is re-
     ported. These occur when keys are pressed or released.

     Note:
	 Repeating  SDL_KEYDOWN  events will occur if key repeat is enabled (see
	 EnableKeyRepeat()).
	 This function is only called if the default HandleKeyPressEvent() and /
	 or HandleKeyReleaseEvent() methods are used.

     Parameters:

     keysym
	    information about the pressed key

     pressed
	    true for SDL_KEYDOWN, false for SDL_KEYUP

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleMouseButtonEvent  (Uint8  button,  Uint16  x,
     Uint16 y, bool pressed) [inline, virtual]
     Mouse button event callback.

     This is used when an event of type SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP
     is reported.

     When  a  mouse  button  press  is detected the number of the button pressed
     (from 1 to 255, with 1 usually being the left button and 2  the  right)  is
     placed  into  button.  The position of the mouse when this event occured is
     stored in x and y.

     Note:
	 This function is only called if the  default  HandleMouseButtonPressEv-
	 ent() and / or HandleMouseButtonReleaseEvent() methods are used.

     Parameters:

     button
	    the mouse button index

     x, y   the x/y coordinates of the mouse at press time

     pressed
	    true for SDL_MOUSEBUTTONDOWN, false for SDL_MOUSEBUTTONUP.

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool  SDLmm::EventHandler::HandleMouseButtonPressEvent  (Uint8 button, Uint16
     x, Uint16 y) [inline, virtual]
     Mouse button press event callback.

     This is used when an event of type SDL_MOUSEBUTTONDOWN is reported.

     When a mouse button press is detected the	number	of  the  button  pressed
     (from  1  to  255, with 1 usually being the left button and 2 the right) is
     placed into button. The position of the mouse when this  event  occured  is
     stored in x and y.

     Note:
	 The  default  declaration  of	this method calls the HandleMouseButton-
	 Event() method. If you want to handle both button presses and	releases
	 in the same method, just redefine HandleMouseButtonEvent().

     Parameters:

     button
	    the mouse button index

     x, y   the x/y coordinates of the mouse at press time

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleMouseButtonReleaseEvent (Uint8 button, Uint16
     x, Uint16 y) [inline, virtual]
     Mouse button release event callback.

     This is used when an event of type SDL_MOUSEBUTTONUP is reported.

     When  a  mouse  button release is detected the number of the button release
     (from 1 to 255, with 1 usually being the left button and 2  the  right)  is
     placed  into  button.  The position of the mouse when this event occured is
     stored in x and y.

     Note:
	 The default declaration of this  method  calls  the  HandleMouseButton-
	 Event()  method. If you want to handle both button presses and releases
	 in the same method, just redefine HandleMouseButtonEvent().

     Parameters:

     button
	    the mouse button index

     x, y   the x/y coordinates of the mouse at press time

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool  SDLmm::EventHandler::HandleMouseMotionEvent  (Uint8  state,  Uint16  x,
     Uint16 y, Sint16 xrel, Sint16 yrel) [inline, virtual]
     Mouse motion event callback.

     This is used when an event of type SDL_MOUSEMOTION is reported.

     Simply put, a SDL_MOUSEMOTION type event occurs when a user moves the mouse
     within the application window or when SDL_WarpMouse is called. Both the ab-
     solute  (x  and  y)  and  relative (xrel and yrel) coordinates are reported
     along with the current button states (state). The button state can  be  in-
     terpreted using the SDL_BUTTON macro (see GetMouseState()).

     If  the  cursor  is hidden (Display::HideCursor()) and the input is grabbed
     (Display::GrabInput(SDL_GRAB_ON)) then the mouse will give relative  motion
     events  even  when  the cursor reaches the edge of the screen. This is cur-
     rently only implemented on Windows and Linux/Unix-a-likes.

     Parameters:

     state  the current button state.

     x, y   the absolute x/y coordinates of the mouse pointer

     xrel, yrel
	    relative motion in the x/y directions

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleQuitEvent () [inline, virtual]
     Quit requested event callback.

     This is used whan an event of type SDL_QUIT is reported.

     The SDL_QUIT event is very important. If you filter out or  ignore  a  quit
     event it is impossible for the user to close the window. On the other hand,
     if  you  do accept a quit event, the application window will be closed, and
     screen updates will still report success, even though the application  will
     no longer be visible.

     Note:
	 The  macro  SDL_QuitRequested	will  return non-zero if a quit event is
	 pending.

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleResizeEvent (int w, int h) [inline, virtual]
     Window resize event callback.

     This is used when an event of type SDL_VIDEORESIZE is reported.

     When SDL_RESIZABLE is passed as a flag to Display::SetVideoMode() the  user
     is allowed to resize the applications window. When the window is resized an
     SDL_VIDEORESIZE  is  reported,  with the new window width and height values
     stored in w and h, respectively. When an SDL_VIDEORESIZE  is  recieved  the
     window  should  be  resized  to the new dimensions using Display::SetVideo-
     Mode();

     Parameters:

     w, h   new width and height of the window.

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleSysWMEvent () [inline, virtual]
     Platform-dependent window manager event callback.

     The system window manager event contains a pointer to  system-specific  in-
     formation about unknown window manager events. If you enable this event us-
     ing Event::EventState(), it will be generated whenever unhandled events are
     received  from the window manager. This can be used, for example, to imple-
     ment cut-and-paste in your application.

     If you want to obtain system-specific information about the window manager,
     you can fill the version member of a SDL_SysWMinfo structure  (details  can
     be  found	in  SDL_syswm.h, which must be included) using the SDL_VERSION()
     macro found in SDL_version.h, and pass it to the function:

	   int SDL_GetWMInfo(SDL_SysWMinfo *info);

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

   bool SDLmm::EventHandler::HandleUserEvent  (Uint8  type,  int  code,  void  *
     data1, void * data2) [inline, virtual]
     This event is unique - it is never created by SDL but only by the user. The
     event  can be pushed onto the event queue using Event::Push(). The contents
     of data1 and data2 are completely up to the programmer. The  only	require-
     ment  is that type is a value from SDL_USEREVENT to SDL_NUMEVENTS-1 (inclu-
     sive).

     Parameters:

     type   SDL_USEREVENT through to SDL_NUMEVENTS-1

     code   user defined event code

     data1, data2
	    user defined data pointers

     Returns:
	 true if the event was handled, false if it was not. If the event wasn't
	 handled, it will be handed over to the generic HandleEvent() method.

AUTHOR
     Generated automatically by Doxygen for SDLmm from the source code.

SDLmm				   16 Jul 2001		  SDLmm::EventHandler(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=SDLmm_EventHandler&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help