285 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			V
		
	
	
module sdl
 | 
						|
 | 
						|
pub union C.SDL_Event {
 | 
						|
pub:
 | 
						|
	@type u32
 | 
						|
	display C.SDL_DisplayEvent
 | 
						|
	window C.SDL_WindowEvent
 | 
						|
	key C.SDL_KeyboardEvent
 | 
						|
	edit C.SDL_TextEditingEvent
 | 
						|
	text C.SDL_TextInputEvent
 | 
						|
	motion C.SDL_MouseMotionEvent
 | 
						|
	button C.SDL_MouseButtonEvent
 | 
						|
	wheel C.SDL_MouseWheelEvent
 | 
						|
	jaxis C.SDL_JoyAxisEvent
 | 
						|
	jball C.SDL_JoyBallEvent
 | 
						|
	jhat C.SDL_JoyHatEvent
 | 
						|
	jbutton C.SDL_JoyButtonEvent
 | 
						|
	jdevice C.SDL_JoyDeviceEvent
 | 
						|
	caxis C.SDL_ControllerAxisEvent
 | 
						|
	cbutton C.SDL_ControllerButtonEvent
 | 
						|
	cdevice C.SDL_ControllerDeviceEvent
 | 
						|
	adevice C.SDL_AudioDeviceEvent
 | 
						|
	sensor C.SDL_SensorEvent
 | 
						|
	quit C.SDL_QuitEvent
 | 
						|
	user C.SDL_UserEvent
 | 
						|
	tfinger C.SDL_TouchFingerEvent
 | 
						|
	mgesture C.SDL_MultiGestureEvent
 | 
						|
	drop C.SDL_DropEvent
 | 
						|
 | 
						|
	_pad56 [56]byte
 | 
						|
}
 | 
						|
 | 
						|
// individual event declarations
 | 
						|
pub struct C.SDL_DisplayEvent {
 | 
						|
    @type u32        /**< ::SDL_DISPLAYEVENT */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    display u32     /**< The associated display index */
 | 
						|
    event byte        /**< ::SDL_DisplayEventID */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
    padding3 byte
 | 
						|
    data1 int       /**< event dependent data */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_WindowEvent {
 | 
						|
pub:
 | 
						|
	@type u32           /**< ::SDL_WINDOWEVENT */
 | 
						|
	timestamp u32       /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
	windowID u32        /**< The associated window */
 | 
						|
	event byte          /**< ::SDL_WindowEventID */
 | 
						|
	padding1 byte
 | 
						|
	padding2 byte
 | 
						|
	padding3 byte
 | 
						|
	data1 int
 | 
						|
	data2 int
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_KeyboardEvent {
 | 
						|
pub:
 | 
						|
	@type u32   	/**< ::SDL_KEYDOWN or ::SDL_KEYUP */
 | 
						|
	timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
	windowID u32   /**< The window with keyboard focus, if any */
 | 
						|
	state byte  	/**< ::SDL_PRESSED or ::SDL_RELEASED */
 | 
						|
	repeat byte     /**< Non-zero if this is a key repeat */
 | 
						|
	padding2 byte
 | 
						|
	padding3 byte
 | 
						|
	keysym Keysym
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_TextEditingEvent {
 | 
						|
pub:
 | 
						|
    @type u32                                /**< ::SDL_TEXTEDITING */
 | 
						|
    timestamp u32                           /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    windowID u32                            /**< The window with keyboard focus, if any */
 | 
						|
    text [32]byte  /**< The editing text */
 | 
						|
    start int                               /**< The start cursor of selected editing text */
 | 
						|
    length int                              /**< The length of selected editing text */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_TextInputEvent {
 | 
						|
pub:
 | 
						|
    @type u32                              /**< ::SDL_TEXTINPUT */
 | 
						|
    timestamp u32                         /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    windowID u32                          /**< The window with keyboard focus, if any */
 | 
						|
    text [32]byte  /**< The input text */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_MouseMotionEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_MOUSEMOTION */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    windowID u32    /**< The window with mouse focus, if any */
 | 
						|
    which u32       /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
 | 
						|
    state u32       /**< The current button state */
 | 
						|
    x int           /**< X coordinate, relative to window */
 | 
						|
    y int           /**< Y coordinate, relative to window */
 | 
						|
    xrel int        /**< The relative motion in the X direction */
 | 
						|
    yrel int        /**< The relative motion in the Y direction */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_MouseButtonEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    windowID u32    /**< The window with mouse focus, if any */
 | 
						|
    which u32       /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
 | 
						|
    button byte       /**< The mouse button index */
 | 
						|
    state byte        /**< ::SDL_PRESSED or ::SDL_RELEASED */
 | 
						|
    clicks byte       /**< 1 for single-click, 2 for double-click, etc. */
 | 
						|
    padding1 byte
 | 
						|
    x int           /**< X coordinate, relative to window */
 | 
						|
    y int           /**< Y coordinate, relative to window */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_MouseWheelEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_MOUSEWHEEL */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    windowID u32    /**< The window with mouse focus, if any */
 | 
						|
    which u32       /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
 | 
						|
    x int           /**< The amount scrolled horizontally, positive to the right and negative to the left */
 | 
						|
    y int           /**< The amount scrolled vertically, positive away from the user and negative toward the user */
 | 
						|
    direction u32   /**< 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 */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_JoyAxisEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_JOYAXISMOTION */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int /**< The joystick instance id */
 | 
						|
    axis byte         /**< The joystick axis index */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
    padding3 byte
 | 
						|
    value i16       /**< The axis value (range: -32768 to 32767) */
 | 
						|
    padding4 u16
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_JoyBallEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_JOYBALLMOTION */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int /**< The joystick instance id */
 | 
						|
    ball byte         /**< The joystick trackball index */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
    padding3 byte
 | 
						|
    xrel i16        /**< The relative motion in the X direction */
 | 
						|
    yrel i16        /**< The relative motion in the Y direction */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_JoyHatEvent {
 | 
						|
pub:
 | 
						|
	@type u32       /**< SDL_JOYHATMOTION */
 | 
						|
	timestamp u32
 | 
						|
	which int       /**< The joystick device index */
 | 
						|
	hat byte        /**< The joystick hat index */
 | 
						|
	value byte      /**< The hat position value:
 | 
						|
						*   SDL_HAT_LEFTUP   SDL_HAT_UP       SDL_HAT_RIGHTUP
 | 
						|
						*   SDL_HAT_LEFT     SDL_HAT_CENTERED SDL_HAT_RIGHT
 | 
						|
						*   SDL_HAT_LEFTDOWN SDL_HAT_DOWN     SDL_HAT_RIGHTDOWN
 | 
						|
						*  Note that zero means the POV is centered.
 | 
						|
						*/
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_JoyButtonEvent {
 | 
						|
pub:
 | 
						|
	@type u32 		/**< SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */
 | 
						|
	timestamp u32
 | 
						|
	which int 		/**< The joystick device index */
 | 
						|
	button byte		/**< The joystick button index */
 | 
						|
	state byte		/**< SDL_PRESSED or SDL_RELEASED */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_JoyDeviceEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int       /**< The joystick device index for the ADDED event, instance id for the REMOVED event */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_ControllerAxisEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_CONTROLLERAXISMOTION */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int /**< The joystick instance id */
 | 
						|
    axis byte         /**< The controller axis (SDL_GameControllerAxis) */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
    padding3 byte
 | 
						|
    value i16       /**< The axis value (range: -32768 to 32767) */
 | 
						|
    padding4 u16
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_ControllerButtonEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int /**< The joystick instance id */
 | 
						|
    button byte       /**< The controller button (SDL_GameControllerButton) */
 | 
						|
    state byte        /**< ::SDL_PRESSED or ::SDL_RELEASED */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_ControllerDeviceEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int       /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_AudioDeviceEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which u32       /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */
 | 
						|
    iscapture byte    /**< zero if an output device, non-zero if a capture device. */
 | 
						|
    padding1 byte
 | 
						|
    padding2 byte
 | 
						|
    padding3 byte
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_TouchFingerEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    touchId i64 /**< The touch device id */
 | 
						|
    fingerId i64
 | 
						|
    x f32            /**< Normalized in the range 0...1 */
 | 
						|
    y f32            /**< Normalized in the range 0...1 */
 | 
						|
    dx f32           /**< Normalized in the range -1...1 */
 | 
						|
    dy f32           /**< Normalized in the range -1...1 */
 | 
						|
    pressure f32     /**< Normalized in the range 0...1 */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_MultiGestureEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_MULTIGESTURE */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    touchId i64 /**< The touch device id */
 | 
						|
    dTheta f32
 | 
						|
    dDist f32
 | 
						|
    x f32
 | 
						|
    y f32
 | 
						|
    numFingers u16
 | 
						|
    padding u16
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_DropEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    file byteptr         /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */
 | 
						|
    windowID u32    /**< The window that was dropped on, if any */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_SensorEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_SENSORUPDATE */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    which int       /**< The instance ID of the sensor */
 | 
						|
    data [6]f32      /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_QuitEvent {
 | 
						|
pub:
 | 
						|
	@type u32 /**< SDL_QUIT */
 | 
						|
	timestamp u32
 | 
						|
}
 | 
						|
 | 
						|
pub struct C.SDL_UserEvent {
 | 
						|
pub:
 | 
						|
    @type u32        /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */
 | 
						|
    timestamp u32   /**< In milliseconds, populated using SDL_GetTicks() */
 | 
						|
    windowID u32    /**< The associated window if any */
 | 
						|
    code int        /**< User defined event code */
 | 
						|
    data1 voidptr        /**< User defined data pointer */
 | 
						|
    data2 voidptr        /**< User defined data pointer */
 | 
						|
}
 |