Skip to content

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

type TSdlEvent = record ... end;

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.