2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Simple  DirectMedia  Layer 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Copyright  ( C )  1997 - 2019  Sam  Lantinga  < slouken @ libsdl . org > 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  This  software  is  provided  ' as - is ' ,  without  any  express  or  implied 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  warranty .   In  no  event  will  the  authors  be  held  liable  for  any  damages 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  arising  from  the  use  of  this  software . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Permission  is  granted  to  anyone  to  use  this  software  for  any  purpose , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  including  commercial  applications ,  and  to  alter  it  and  redistribute  it 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  freely ,  subject  to  the  following  restrictions : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  1.  The  origin  of  this  software  must  not  be  misrepresented ;  you  must  not 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     claim  that  you  wrote  the  original  software .  If  you  use  this  software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     in  a  product ,  an  acknowledgment  in  the  product  documentation  would  be 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     appreciated  but  is  not  required . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  2.  Altered  source  versions  must  be  plainly  marked  as  such ,  and  must  not  be 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     misrepresented  as  being  the  original  software . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  3.  This  notice  may  not  be  removed  or  altered  from  any  source  distribution . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ file  SDL_events . h 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Include  file  for  SDL  event  handling . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# ifndef SDL_events_h_ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_events_h_ 
  
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_stdinc.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_error.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_video.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_keyboard.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_mouse.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_joystick.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_gamecontroller.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_quit.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_gesture.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_touch.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "begin_code.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Set up for C function definitions, even when using C++ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef __cplusplus 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  " C "  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* General keyboard/mouse state definitions */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_RELEASED    0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_PRESSED 1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  The  types  of  events  that  can  be  delivered . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  enum  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FIRSTEVENT      =  0 ,      /**< Unused (do not remove) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Application events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_QUIT            =  0x100 ,  /**< User-requested quit */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* These application events have special meaning on iOS, see README-ios.md for details */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_TERMINATING ,         /**< The application is being terminated by the OS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationWillTerminate ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onDestroy ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_LOWMEMORY ,           /**< The application is low on memory, free memory if possible.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationDidReceiveMemoryWarning ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onLowMemory ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_WILLENTERBACKGROUND ,  /**< The application is about to enter the background
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationWillResignActive ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onPause ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_DIDENTERBACKGROUND ,  /**< The application did enter the background and may not get CPU for some time
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationDidEnterBackground ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onPause ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_WILLENTERFOREGROUND ,  /**< The application is about to enter the foreground
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationWillEnterForeground ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onResume ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_DIDENTERFOREGROUND ,  /**< The application is now interactive
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationDidBecomeActive ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onResume ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /* Display events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DISPLAYEVENT    =  0x150 ,   /**< Display state change */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    /* Window events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_WINDOWEVENT     =  0x200 ,  /**< Window state change */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SYSWMEVENT ,              /**< System specific event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Keyboard events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KEYDOWN         =  0x300 ,  /**< Key pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KEYUP ,                   /**< Key released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TEXTEDITING ,             /**< Keyboard text editing (composition) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TEXTINPUT ,               /**< Keyboard text input */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KEYMAPCHANGED ,           /**< Keymap changed due to a system event such as an
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     input  language  or  keyboard  layout  change . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Mouse events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEMOTION     =  0x400 ,  /**< Mouse moved */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEBUTTONDOWN ,         /**< Mouse button pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEBUTTONUP ,           /**< Mouse button released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEWHEEL ,              /**< Mouse wheel motion */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Joystick events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYAXISMOTION   =  0x600 ,  /**< 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_JOYDEVICEADDED ,          /**< A new joystick has been inserted into the system */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYDEVICEREMOVED ,        /**< An opened joystick has been removed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Game controller events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERAXISMOTION   =  0x650 ,  /**< Game controller axis motion */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERBUTTONDOWN ,           /**< Game controller button pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERBUTTONUP ,             /**< Game controller button released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERDEVICEADDED ,          /**< A new Game controller has been inserted into the system */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERDEVICEREMOVED ,        /**< An opened Game controller has been removed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERDEVICEREMAPPED ,       /**< The controller mapping was updated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Touch events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FINGERDOWN       =  0x700 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FINGERUP , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FINGERMOTION , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Gesture events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DOLLARGESTURE    =  0x800 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DOLLARRECORD , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MULTIGESTURE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Clipboard events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CLIPBOARDUPDATE  =  0x900 ,  /**< The clipboard changed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Drag and drop events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DROPFILE         =  0x1000 ,  /**< The system requests a file open */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_DROPTEXT ,                  /**< text/plain drag-and-drop event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DROPBEGIN ,                 /**< A new set of drops is beginning (NULL filename) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DROPCOMPLETE ,              /**< Current set of drops is now complete (NULL filename) */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Audio hotplug events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_AUDIODEVICEADDED  =  0x1100 ,  /**< A new audio device is available */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_AUDIODEVICEREMOVED ,         /**< An audio device has been removed. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /* Sensor events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SENSORUPDATE  =  0x1200 ,      /**< A sensor was updated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    /* Render events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_RENDER_TARGETS_RESET  =  0x2000 ,  /**< The render targets have been reset and their contents need to be updated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_RENDER_DEVICE_RESET ,  /**< The device has been reset and all textures need to be recreated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *   and  should  be  allocated  with  SDL_RegisterEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_USEREVENT     =  0x8000 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *   This  last  event  is  only  for  bounding  internal  arrays 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_LASTEVENT     =  0xFFFF 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_EventType ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Fields  shared  by  every  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_CommonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_CommonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Display  state  change  event  data  ( event . display . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_DisplayEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_DISPLAYEVENT */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  display ;      /**< The associated display index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  event ;         /**< ::SDL_DisplayEventID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  data1 ;        /**< event dependent data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_DisplayEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Window  state  change  event  data  ( event . window . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_WindowEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_WINDOWEVENT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The associated window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  event ;         /**< ::SDL_WindowEventID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  data1 ;        /**< event dependent data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  data2 ;        /**< event dependent data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_WindowEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Keyboard  button  event  structure  ( event . key . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_KeyboardEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  repeat ;        /**< Non-zero if this is a key repeat */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_Keysym  keysym ;   /**< The key that was pressed or released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_KeyboardEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Keyboard  text  editing  event  structure  ( event . edit . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TextEditingEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;                                 /**< ::SDL_TEXTEDITING */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;                            /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;                             /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  text [ SDL_TEXTEDITINGEVENT_TEXT_SIZE ] ;   /**< The editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  start ;                                /**< The start cursor of selected editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  length ;                               /**< The length of selected editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_TextEditingEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Keyboard  text  input  event  structure  ( event . text . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TextInputEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;                               /**< ::SDL_TEXTINPUT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;                          /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;                           /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  text [ SDL_TEXTINPUTEVENT_TEXT_SIZE ] ;   /**< The input text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_TextInputEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Mouse  motion  event  structure  ( event . motion . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MouseMotionEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MOUSEMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with mouse focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  state ;        /**< The current button state */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  x ;            /**< X coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  y ;            /**< Y coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  xrel ;         /**< The relative motion in the X direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  yrel ;         /**< The relative motion in the Y direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MouseMotionEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Mouse  button  event  structure  ( event . button . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MouseButtonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with mouse focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  button ;        /**< The mouse button index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  clicks ;        /**< 1 for single-click, 2 for double-click, etc. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  x ;            /**< X coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  y ;            /**< Y coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MouseButtonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Mouse  wheel  event  structure  ( event . wheel . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MouseWheelEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MOUSEWHEEL */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with mouse focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  x ;            /**< The amount scrolled horizontally, positive to the right and negative to the left */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  y ;            /**< The amount scrolled vertically, positive away from the user and negative toward the user */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  direction ;    /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MouseWheelEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  axis  motion  event  structure  ( event . jaxis . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyAxisEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYAXISMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  axis ;          /**< The joystick axis index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  value ;        /**< The axis value (range: -32768 to 32767) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  padding4 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyAxisEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  trackball  motion  event  structure  ( event . jball . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyBallEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYBALLMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  ball ;          /**< The joystick trackball index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  xrel ;         /**< The relative motion in the X direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  yrel ;         /**< The relative motion in the Y direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyBallEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  hat  position  change  event  structure  ( event . jhat . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyHatEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYHATMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  hat ;           /**< The joystick hat index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  value ;         /**< The hat position value.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    \ sa  : : SDL_HAT_LEFTUP  : : SDL_HAT_UP  : : SDL_HAT_RIGHTUP 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    \ sa  : : SDL_HAT_LEFT  : : SDL_HAT_CENTERED  : : SDL_HAT_RIGHT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    \ sa  : : SDL_HAT_LEFTDOWN  : : SDL_HAT_DOWN  : : SDL_HAT_RIGHTDOWN 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    Note  that  zero  means  the  POV  is  centered . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyHatEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  button  event  structure  ( event . jbutton . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyButtonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  button ;        /**< The joystick button index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyButtonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  device  event  structure  ( event . jdevice . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyDeviceEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Sint32  which ;        /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyDeviceEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Game  controller  axis  motion  event  structure  ( event . caxis . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerAxisEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERAXISMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  axis ;          /**< The controller axis (SDL_GameControllerAxis) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  value ;        /**< The axis value (range: -32768 to 32767) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  padding4 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerAxisEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Game  controller  button  event  structure  ( event . cbutton . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerButtonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  button ;        /**< The controller button (SDL_GameControllerButton) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerButtonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Controller  device  event  structure  ( event . cdevice . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerDeviceEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Sint32  which ;        /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerDeviceEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Audio  device  event  structure  ( event . adevice . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_AudioDeviceEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  iscapture ;     /**< zero if an output device, non-zero if a capture device. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_AudioDeviceEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Touch  finger  event  structure  ( event . tfinger . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TouchFingerEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_TouchID  touchId ;  /**< The touch device id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FingerID  fingerId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ;             /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ;             /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  dx ;            /**< Normalized in the range -1...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  dy ;            /**< Normalized in the range -1...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  pressure ;      /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_TouchFingerEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Multiple  Finger  Gesture  Event  ( event . mgesture . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MultiGestureEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MULTIGESTURE */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TouchID  touchId ;  /**< The touch device id */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    float  dTheta ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  dDist ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  numFingers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  padding ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MultiGestureEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Dollar  Gesture  Event  ( event . dgesture . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_DollarGestureEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_TouchID  touchId ;  /**< The touch device id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_GestureID  gestureId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  numFingers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  error ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ;             /**< Normalized center of gesture */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ;             /**< Normalized center of gesture */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_DollarGestureEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  An  event  used  to  request  a  file  open  by  the  system  ( event . drop . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *          This  event  is  enabled  by  default ,  you  can  disable  it  with  SDL_EventState ( ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ note  If  this  event  is  enabled ,  you  must  free  the  filename  in  the  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_DropEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  * file ;          /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window that was dropped on, if any */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_DropEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Sensor  event  structure  ( event . sensor . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_SensorEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_SENSORUPDATE */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  which ;        /**< The instance ID of the sensor */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  data [ 6 ] ;       /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_SensorEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  The  " quit requested "  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_QuitEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_QUIT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_QuitEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  OS  Specific  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_OSEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_QUIT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_OSEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  A  user - defined  event  type  ( event . user . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_UserEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The associated window if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  code ;         /**< User defined event code */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    void  * data1 ;         /**< User defined data pointer */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    void  * data2 ;         /**< User defined data pointer */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_UserEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  SDL_SysWMmsg ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_SysWMmsg  SDL_SysWMmsg ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  A  video  driver  dependent  system  event  ( event . syswm . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *          This  event  is  disabled  by  default ,  you  can  enable  it  with  SDL_EventState ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ note  If  you  want  to  use  this  event ,  you  should  include  SDL_syswm . h . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_SysWMEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_SYSWMEVENT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_SysWMmsg  * msg ;   /**< driver dependent data, defined in SDL_syswm.h */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_SysWMEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  General  event  structure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  union  SDL_Event  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;                     /**< Event type, shared with all events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CommonEvent  common ;          /**< Common event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_DisplayEvent  display ;        /**< Window event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_WindowEvent  window ;          /**< Window event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KeyboardEvent  key ;           /**< Keyboard event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TextEditingEvent  edit ;       /**< Text editing event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TextInputEvent  text ;         /**< Text input event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MouseMotionEvent  motion ;     /**< Mouse motion event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MouseButtonEvent  button ;     /**< Mouse button event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MouseWheelEvent  wheel ;       /**< Mouse wheel event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyAxisEvent  jaxis ;          /**< Joystick axis event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyBallEvent  jball ;          /**< Joystick ball event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyHatEvent  jhat ;            /**< Joystick hat event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyButtonEvent  jbutton ;      /**< Joystick button event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyDeviceEvent  jdevice ;      /**< Joystick device change event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerAxisEvent  caxis ;       /**< Game Controller axis event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerButtonEvent  cbutton ;   /**< Game Controller button event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerDeviceEvent  cdevice ;   /**< Game Controller device event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_AudioDeviceEvent  adevice ;    /**< Audio device event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_SensorEvent  sensor ;          /**< Sensor event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_QuitEvent  quit ;              /**< Quit request event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_UserEvent  user ;              /**< Custom event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SysWMEvent  syswm ;            /**< System dependent window event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TouchFingerEvent  tfinger ;    /**< Touch finger event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MultiGestureEvent  mgesture ;  /**< Gesture event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DollarGestureEvent  dgesture ;  /**< Gesture event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DropEvent  drop ;              /**< Drag and drop event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* This is necessary for ABI compatibility between Visual C++ and GCC
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       Visual  C + +  will  respect  the  push  pack  pragma  and  use  52  bytes  for 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       this  structure ,  and  GCC  will  use  the  alignment  of  the  largest  datatype 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       within  the  union ,  which  is  8  bytes . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       So . . .  we ' ll  add  padding  to  force  the  size  to  be  56  bytes  for  both . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding [ 56 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_Event ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* Make sure we haven't broken binary compatibility */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SDL_COMPILE_TIME_ASSERT ( SDL_Event ,  sizeof ( SDL_Event )  = =  56 ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Function prototypes */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   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 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_PumpEvents ( void ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @{ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  enum  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ADDEVENT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_PEEKEVENT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_GETEVENT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_eventaction ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Checks  the  event  queue  for  messages  and  optionally  returns  them . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   If  \ c  action  is  : : SDL_ADDEVENT ,  up  to  \ c  numevents  events  will  be  added  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   the  back  of  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   If  \ c  action  is  : : SDL_PEEKEVENT ,  up  to  \ c  numevents  events  at  the  front 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   of  the  event  queue ,  within  the  specified  minimum  and  maximum  type , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   will  be  returned  and  will  not  be  removed  from  the  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   If  \ c  action  is  : : SDL_GETEVENT ,  up  to  \ c  numevents  events  at  the  front 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   of  the  event  queue ,  within  the  specified  minimum  and  maximum  type , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   will  be  returned  and  will  be  removed  from  the  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ return  The  number  of  events  actually  stored ,  or  - 1  if  there  was  an  error . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   This  function  is  thread - safe . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_PeepEvents ( SDL_Event  *  events ,  int  numevents ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           SDL_eventaction  action , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           Uint32  minType ,  Uint32  maxType ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @} */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Checks  to  see  if  certain  event  types  are  in  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  SDL_bool  SDLCALL  SDL_HasEvent ( Uint32  type ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  SDL_bool  SDLCALL  SDL_HasEvents ( Uint32  minType ,  Uint32  maxType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   This  function  clears  events  from  the  event  queue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   This  function  only  affects  currently  queued  events .  If  you  want  to  make 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   sure  that  all  pending  OS  events  are  flushed ,  you  can  call  SDL_PumpEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   on  the  main  thread  immediately  before  the  flush  call . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_FlushEvent ( Uint32  type ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_FlushEvents ( Uint32  minType ,  Uint32  maxType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Polls  for  currently  pending  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ return  1  if  there  are  any  pending  events ,  or  0  if  there  are  none  available . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ param  event  If  not  NULL ,  the  next  event  is  removed  from  the  queue  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                stored  in  that  area . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_PollEvent ( SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Waits  indefinitely  for  the  next  available  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ return  1 ,  or  0  if  there  was  an  error  while  waiting  for  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ param  event  If  not  NULL ,  the  next  event  is  removed  from  the  queue  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                stored  in  that  area . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_WaitEvent ( SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Waits  until  the  specified  timeout  ( in  milliseconds )  for  the  next 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *          available  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ return  1 ,  or  0  if  there  was  an  error  while  waiting  for  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ param  event  If  not  NULL ,  the  next  event  is  removed  from  the  queue  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                stored  in  that  area . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ param  timeout  The  timeout  ( in  milliseconds )  to  wait  for  next  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_WaitEventTimeout ( SDL_Event  *  event ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                 int  timeout ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Add  an  event  to  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ return  1  on  success ,  0  if  the  event  was  filtered ,  or  - 1  if  the  event  queue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           was  full  or  there  was  some  other  error . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_PushEvent ( SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  int  ( SDLCALL  *  SDL_EventFilter )  ( void  * userdata ,  SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Sets  up  a  filter  to  process  all  events  before  they  change  internal  state  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   are  posted  to  the  internal  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   The  filter  is  prototyped  as : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ code 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *       int  SDL_EventFilter ( void  * userdata ,  SDL_Event  *  event ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ endcode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   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 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_SetEventFilter ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Return  the  current  event  filter  -  can  be  used  to  " chain "  filters . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   If  there  is  no  event  filter  set ,  this  function  returns  SDL_FALSE . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  SDL_bool  SDLCALL  SDL_GetEventFilter ( SDL_EventFilter  *  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                    void  * * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Add  a  function  which  is  called  when  an  event  is  added  to  the  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_AddEventWatch ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                               void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Remove  an  event  watch  function  added  with  SDL_AddEventWatch ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_DelEventWatch ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                               void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Run  the  filter  function  on  the  current  event  queue ,  removing  any 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   events  for  which  the  filter  returns  0. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_FilterEvents ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                              void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @{ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_QUERY   -1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_IGNORE   0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_DISABLE  0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_ENABLE   1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   This  function  allows  you  to  set  the  state  of  processing  certain  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    -  If  \ c  state  is  set  to  : : SDL_IGNORE ,  that  event  will  be  automatically 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *      dropped  from  the  event  queue  and  will  not  be  filtered . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *    -  If  \ c  state  is  set  to  : : SDL_ENABLE ,  that  event  will  be  processed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      normally . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    -  If  \ c  state  is  set  to  : : SDL_QUERY ,  SDL_EventState ( )  will  return  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      current  processing  state  of  the  specified  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  Uint8  SDLCALL  SDL_EventState ( Uint32  type ,  int  state ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @} */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   This  function  allocates  a  set  of  user - defined  events ,  and  returns 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   the  beginning  event  number  for  that  set  of  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   If  there  aren ' t  enough  user - defined  events  left ,  this  function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   returns  ( Uint32 ) - 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  Uint32  SDLCALL  SDL_RegisterEvents ( int  numevents ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Ends C function definitions when using C++ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef __cplusplus 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "close_code.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif  /* SDL_events_h_ */ 
  
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* vi: set ts=4 sw=4 expandtab: */