TSdlEvent
A variant record that contains records for the different event types.
The TSdlEvent record is the core of all event handling in SDL. TSdlEvent is a variant record of all event records used in SDL. Using it is a simple matter of knowing which event kind corresponds to which property. The table below lists these relationships.
TSdlEventKind | Event Record | TSdlEvent Field |
---|---|---|
Display* | TSdlDisplayEvent | Display |
Window* | TSdlWindowEvent | Window |
KeyboardAdded/Removed | TSdlKeyboardDeviceEvent | KeyboardDevice |
Key* | TSdlKeyboardEvent | Key |
TextEditing | TSdlTextEditingEvent | TextEdit |
TextEditingCandidates | TSdlTextEditingCandidatesEvent | TextCandidates |
TextInput | TSdlTextInputEvent | TextInput |
MouseAdded/Removed | TSdlMouseDeviceEvent | MouseDevice |
MouseMotion | TSdlMouseMotionEvent | MouseMotion |
MouseButtonUp/Down | TSdlMouseButtonEvent | MouseButton |
MouseWheel | TSdlMouseWheelEvent | MouseWheel |
JoystickAxisMotion | TSdlJoyAxisEvent | JoyAxis |
JoystickBallMotion | TSdlJoyBallEvent | JoyBall |
JoystickHatMotion | TSdlJoyHatEvent | JoyHat |
JoystickButtonUp/Down | TSdlJoyButtonEvent | JoyButton |
JoystickBatteryUpdated | TSdlJoyBatteryEvent | JoyBattery |
Joystick* (others) | TSdlJoyDeviceEvent | JoyDevice |
GamepadAxisMotion | TSdlGamepadAxisEvent | GamepadAxis |
GamepadButtonUp/Down | TSdlGamepadButtonEvent | GamepadButton |
GamepadTouchpad* | TSdlGamepadTouchpadEvent | GamepadTouch |
GamepadSensorUpdate | TSdlGamepadSensorEvent | GamepadSensor |
GamepadAdded* (others) | TSdlGamepadDeviceEvent | GamepadDevice |
AudioDevice* | TSdlAudioDeviceEvent | Audio |
CameraDevice* | TSdlCameraDeviceEvent | Camera |
SensorUpdate | TSdlSensorEvent | Sensor |
Quit | TSdlQuitEvent | Quit |
Finger* | TSdlTouchFingerEvent | Finger |
PenProximityIn/Out | TSdlPenProximityEvent | PenProximity |
PenUp/Down | TSdlPenTouchEvent | PenTouch |
PenMotion | TSdlPenMotionEvent | PenMotion |
PenButtonUp/Down | TSdlPenButtonEvent | PenButton |
PenAxis | TSdlPenAxisEvent | PenAxis |
Render* | TSdlRenderEvent | Render |
Drop* | TSdlDropEvent | Drop |
ClipboardUpdate | TSdlClipboardEvent | Clipboard |
(registered user event) | TSdlUserEvent | User |
(other events) | TSdlCommonEvent | Common |
Definition
Unit: Neslib.Sdl3.Events
Fields
Name | Description |
---|---|
Audio | Audio device event data |
Camera | Camera device event data |
Clipboard | Clipboard event data |
Common | Common event data |
Display | Display event data |
Drop | Drag and drop event data |
Finger | Touch finger event data |
GamepadAxis | Gamepad axis event data |
GamepadButton | Gamepad button event data |
GamepadDevice | Gamepad device event data |
GamepadSensor | Gamepad sensor event data |
GamepadTouch | Gamepad touchpad event data |
Handle | Handle to underlying C event record |
JoyAxis | Joystick axis event data |
JoyBall | Joystick ball event data |
JoyBattery | Joystick battery event data |
JoyButton | Joystick button event data |
JoyDevice | Joystick device change event data |
JoyHat | Joystick hat event data |
Key | Keyboard event data |
KeyboardDevice | Keyboard device change event data |
Kind | Event kind, shared with all events |
MouseButton | Mouse button event data |
MouseDevice | Mouse device change event data |
MouseMotion | Mouse motion event data |
MouseWheel | Mouse wheel event data |
PenAxis | Pen axis event data |
PenButton | Pen button event data |
PenMotion | Pen motion event data |
PenProximity | Pen proximity event data |
PenTouch | Pen tip touching event data |
Quit | Quit request event data |
Render | Render event data |
Sensor | Sensor event data |
TextCandidates | Text editing candidates event data |
TextEdit | Text editing event data |
TextInput | Text editing candidates event data |
User | Custom event data |
Window | Window event data |
Methods
Name | Description |
---|---|
ConvertToRenderCoordinates | Convert the coordinates in an event to render coordinates. |
Field Descriptions
Audio
Audio device event data
var Audio: TSdlAudioDeviceEvent
Type: TSdlAudioDeviceEvent
Camera
Camera device event data
var Camera: TSdlCameraDeviceEvent
Type: TSdlCameraDeviceEvent
Clipboard
Clipboard event data
var Clipboard: TSdlClipboardEvent
Type: TSdlClipboardEvent
Common
Common event data
var Common: TSdlCommonEvent
Type: TSdlCommonEvent
Display
Display event data
var Display: TSdlDisplayEvent
Type: TSdlDisplayEvent
Drop
Drag and drop event data
var Drop: TSdlDropEvent
Type: TSdlDropEvent
Finger
Touch finger event data
var Finger: TSdlTouchFingerEvent
Type: TSdlTouchFingerEvent
GamepadAxis
Gamepad axis event data
var GamepadAxis: TSdlGamepadAxisEvent
Type: TSdlGamepadAxisEvent
GamepadButton
Gamepad button event data
var GamepadButton: TSdlGamepadButtonEvent
Type: TSdlGamepadButtonEvent
GamepadDevice
Gamepad device event data
var GamepadDevice: TSdlGamepadDeviceEvent
Type: TSdlGamepadDeviceEvent
GamepadSensor
Gamepad sensor event data
var GamepadSensor: TSdlGamepadSensorEvent
Type: TSdlGamepadSensorEvent
GamepadTouch
Gamepad touchpad event data
var GamepadTouch: TSdlGamepadTouchpadEvent
Type: TSdlGamepadTouchpadEvent
Handle
Handle to underlying C event record
var Handle: SDL_Event
Type: SDL_Event
JoyAxis
Joystick axis event data
var JoyAxis: TSdlJoyAxisEvent
Type: TSdlJoyAxisEvent
JoyBall
Joystick ball event data
var JoyBall: TSdlJoyBallEvent
Type: TSdlJoyBallEvent
JoyBattery
Joystick battery event data
var JoyBattery: TSdlJoyBatteryEvent
Type: TSdlJoyBatteryEvent
JoyButton
Joystick button event data
var JoyButton: TSdlJoyButtonEvent
Type: TSdlJoyButtonEvent
JoyDevice
Joystick device change event data
var JoyDevice: TSdlJoyDeviceEvent
Type: TSdlJoyDeviceEvent
JoyHat
Joystick hat event data
var JoyHat: TSdlJoyHatEvent
Type: TSdlJoyHatEvent
Key
Keyboard event data
var Key: TSdlKeyboardEvent
Type: TSdlKeyboardEvent
KeyboardDevice
Keyboard device change event data
var KeyboardDevice: TSdlKeyboardDeviceEvent
Type: TSdlKeyboardDeviceEvent
Kind
Event kind, shared with all events
var Kind: TSdlEventKind
Type: TSdlEventKind
MouseButton
Mouse button event data
var MouseButton: TSdlMouseButtonEvent
Type: TSdlMouseButtonEvent
MouseDevice
Mouse device change event data
var MouseDevice: TSdlMouseDeviceEvent
Type: TSdlMouseDeviceEvent
MouseMotion
Mouse motion event data
var MouseMotion: TSdlMouseMotionEvent
Type: TSdlMouseMotionEvent
MouseWheel
Mouse wheel event data
var MouseWheel: TSdlMouseWheelEvent
Type: TSdlMouseWheelEvent
PenAxis
Pen axis event data
var PenAxis: TSdlPenAxisEvent
Type: TSdlPenAxisEvent
PenButton
Pen button event data
var PenButton: TSdlPenButtonEvent
Type: TSdlPenButtonEvent
PenMotion
Pen motion event data
var PenMotion: TSdlPenMotionEvent
Type: TSdlPenMotionEvent
PenProximity
Pen proximity event data
var PenProximity: TSdlPenProximityEvent
Type: TSdlPenProximityEvent
PenTouch
Pen tip touching event data
var PenTouch: TSdlPenTouchEvent
Type: TSdlPenTouchEvent
Quit
Quit request event data
var Quit: TSdlQuitEvent
Type: TSdlQuitEvent
Render
Render event data
var Render: TSdlRenderEvent
Type: TSdlRenderEvent
Sensor
Sensor event data
var Sensor: TSdlSensorEvent
Type: TSdlSensorEvent
TextCandidates
Text editing candidates event data
var TextCandidates: TSdlTextEditingCandidatesEvent
Type: TSdlTextEditingCandidatesEvent
TextEdit
Text editing event data
var TextEdit: TSdlTextEditingEvent
Type: TSdlTextEditingEvent
TextInput
Text editing candidates event data
var TextInput: TSdlTextInputEvent
Type: TSdlTextInputEvent
User
Custom event data
var User: TSdlUserEvent
Type: TSdlUserEvent
Window
Window event data
var Window: TSdlWindowEvent
Type: TSdlWindowEvent
Method Descriptions
ConvertToRenderCoordinates(TSdlRenderer)
Convert the coordinates in an event to render coordinates.
This takes into account several states:
- The window dimensions.
- The logical presentation settings (SetLogicalPresentation)
- The scale (Scale)
- The viewport (Viewport)
Various event types are converted with this function: mouse, touch, pen, etc.
Touch coordinates are converted from normalized coordinates in the window to non-normalized rendering coordinates.
Relative mouse coordinates (XRel and YRel event fields) are also converted. Applications that do not want these fields converted should use TSdlRenderer.RenderCoordinatesFromWindow on the specific event fields instead of converting the entire event structure.
Once converted, coordinates may be outside the rendering area.
procedure ConvertToRenderCoordinates(const ARenderer: TSdlRenderer); inline
Exceptions
ESdlError
: Raised on failure.
Parameters
ARenderer
: TSdlRenderer
: The rendering context.
See Also
Remarks
This method should only be called on the main thread.