From 3304ec648b3f02b6cf192bbe0677c645153c7f41 Mon Sep 17 00:00:00 2001 From: Lucas Alves Date: Wed, 22 Jul 2026 23:35:11 -0300 Subject: [PATCH] Add "_FIRST/_LAST" fields to events subsections. --- include/SDL3/SDL_events.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/include/SDL3/SDL_events.h b/include/SDL3/SDL_events.h index 0a8130df51..1a67d733fe 100644 --- a/include/SDL3/SDL_events.h +++ b/include/SDL3/SDL_events.h @@ -180,6 +180,8 @@ typedef enum SDL_EventType SDL_EVENT_TEXT_EDITING_CANDIDATES, /**< Keyboard text editing candidates */ SDL_EVENT_SCREEN_KEYBOARD_SHOWN, /**< The on-screen keyboard has been shown */ SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, /**< The on-screen keyboard has been hidden */ + SDL_EVENT_KEYBOARD_FIRST = SDL_EVENT_KEY_DOWN, + SDL_EVENT_KEYBOARD_LAST = SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, /* Mouse events */ SDL_EVENT_MOUSE_MOTION = 0x400, /**< Mouse moved */ @@ -188,6 +190,8 @@ typedef enum SDL_EventType SDL_EVENT_MOUSE_WHEEL, /**< Mouse wheel motion */ SDL_EVENT_MOUSE_ADDED, /**< A new mouse has been inserted into the system */ SDL_EVENT_MOUSE_REMOVED, /**< A mouse has been removed */ + SDL_EVENT_MOUSE_FIRST = SDL_EVENT_MOUSE_MOTION, + SDL_EVENT_MOUSE_LAST = SDL_EVENT_MOUSE_REMOVED, /* Joystick events */ SDL_EVENT_JOYSTICK_AXIS_MOTION = 0x600, /**< Joystick axis motion */ @@ -199,6 +203,8 @@ typedef enum SDL_EventType SDL_EVENT_JOYSTICK_REMOVED, /**< An opened joystick has been removed */ SDL_EVENT_JOYSTICK_BATTERY_UPDATED, /**< Joystick battery level change */ SDL_EVENT_JOYSTICK_UPDATE_COMPLETE, /**< Joystick update is complete */ + SDL_EVENT_JOYSTICK_FIRST = SDL_EVENT_JOYSTICK_AXIS_MOTION, + SDL_EVENT_JOYSTICK_LAST = SDL_EVENT_JOYSTICK_UPDATE_COMPLETE, /* Gamepad events */ SDL_EVENT_GAMEPAD_AXIS_MOTION = 0x650, /**< Gamepad axis motion */ @@ -215,22 +221,30 @@ typedef enum SDL_EventType SDL_EVENT_GAMEPAD_STEAM_HANDLE_UPDATED, /**< Gamepad Steam handle has changed */ SDL_EVENT_GAMEPAD_CAPSENSE_TOUCH, /**< Gamepad capsense was touched */ SDL_EVENT_GAMEPAD_CAPSENSE_RELEASE, /**< Gamepad capsense was released */ + SDL_EVENT_GAMEPAD_FIRST = SDL_EVENT_GAMEPAD_AXIS_MOTION, + SDL_EVENT_GAMEPAD_LAST = SDL_EVENT_GAMEPAD_CAPSENSE_RELEASE, /* Touch events */ SDL_EVENT_FINGER_DOWN = 0x700, SDL_EVENT_FINGER_UP, SDL_EVENT_FINGER_MOTION, SDL_EVENT_FINGER_CANCELED, + SDL_EVENT_FINGER_FIRST = SDL_EVENT_FINGER_DOWN, + SDL_EVENT_FINGER_LAST = SDL_EVENT_FINGER_CANCELED, /* Pinch events */ SDL_EVENT_PINCH_BEGIN = 0x710, /**< Pinch gesture started */ SDL_EVENT_PINCH_UPDATE, /**< Pinch gesture updated */ SDL_EVENT_PINCH_END, /**< Pinch gesture ended */ + SDL_EVENT_PINCH_FIRST = SDL_EVENT_PINCH_BEGIN, + SDL_EVENT_PINCH_LAST = SDL_EVENT_PINCH_END, /* 0x800, 0x801, and 0x802 were the Gesture events from SDL2. Do not reuse these values! sdl2-compat needs them! */ /* Clipboard events */ SDL_EVENT_CLIPBOARD_UPDATE = 0x900, /**< The clipboard changed */ + SDL_EVENT_CLIPBOARD_FIRST = SDL_EVENT_CLIPBOARD_UPDATE, + SDL_EVENT_CLIPBOARD_LAST = SDL_EVENT_CLIPBOARD_UPDATE, /* Drag and drop events */ SDL_EVENT_DROP_FILE = 0x1000, /**< The system requests a file open */ @@ -238,14 +252,20 @@ typedef enum SDL_EventType SDL_EVENT_DROP_BEGIN, /**< A new set of drops is beginning (NULL filename) */ SDL_EVENT_DROP_COMPLETE, /**< Current set of drops is now complete (NULL filename) */ SDL_EVENT_DROP_POSITION, /**< Position while moving over the window */ + SDL_EVENT_DROP_FIRST = SDL_EVENT_DROP_FILE, + SDL_EVENT_DROP_LAST = SDL_EVENT_DROP_POSITION, /* Audio hotplug events */ SDL_EVENT_AUDIO_DEVICE_ADDED = 0x1100, /**< A new audio device is available */ SDL_EVENT_AUDIO_DEVICE_REMOVED, /**< An audio device has been removed. */ SDL_EVENT_AUDIO_DEVICE_FORMAT_CHANGED, /**< An audio device's format has been changed by the system. */ + SDL_EVENT_AUDIO_DEVICE_FIRST = SDL_EVENT_AUDIO_DEVICE_ADDED, + SDL_EVENT_AUDIO_DEVICE_LAST = SDL_EVENT_AUDIO_DEVICE_FORMAT_CHANGED, /* Sensor events */ SDL_EVENT_SENSOR_UPDATE = 0x1200, /**< A sensor was updated */ + SDL_EVENT_SENSOR_FIRST = SDL_EVENT_SENSOR_UPDATE, + SDL_EVENT_SENSOR_LAST = SDL_EVENT_SENSOR_UPDATE, /* Pressure-sensitive pen events */ SDL_EVENT_PEN_PROXIMITY_IN = 0x1300, /**< Pressure-sensitive pen has become available */ @@ -256,20 +276,28 @@ typedef enum SDL_EventType SDL_EVENT_PEN_BUTTON_UP, /**< Pressure-sensitive pen button released */ SDL_EVENT_PEN_MOTION, /**< Pressure-sensitive pen is moving on the tablet */ SDL_EVENT_PEN_AXIS, /**< Pressure-sensitive pen angle/pressure/etc changed */ + SDL_EVENT_PEN_FIRST = SDL_EVENT_PEN_PROXIMITY_IN, + SDL_EVENT_PEN_LAST = SDL_EVENT_PEN_AXIS, /* Camera hotplug events */ SDL_EVENT_CAMERA_DEVICE_ADDED = 0x1400, /**< A new camera device is available */ SDL_EVENT_CAMERA_DEVICE_REMOVED, /**< A camera device has been removed. */ SDL_EVENT_CAMERA_DEVICE_APPROVED, /**< A camera device has been approved for use by the user. */ SDL_EVENT_CAMERA_DEVICE_DENIED, /**< A camera device has been denied for use by the user. */ + SDL_EVENT_CAMERA_DEVICE_FIRST = SDL_EVENT_CAMERA_DEVICE_ADDED, + SDL_EVENT_CAMERA_DEVICE_LAST = SDL_EVENT_CAMERA_DEVICE_DENIED, /* Notification events */ SDL_EVENT_NOTIFICATION_ACTION_INVOKED = 0x1500, /**< A user response to a system notification was received. */ + SDL_EVENT_NOTIFICATION_FIRST = SDL_EVENT_NOTIFICATION_ACTION_INVOKED, + SDL_EVENT_NOTIFICATION_LAST = SDL_EVENT_NOTIFICATION_ACTION_INVOKED, /* Render events */ SDL_EVENT_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */ SDL_EVENT_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */ SDL_EVENT_RENDER_DEVICE_LOST, /**< The device has been lost and can't be recovered. */ + SDL_EVENT_RENDER_FIRST = SDL_EVENT_RENDER_TARGETS_RESET, + SDL_EVENT_RENDER_LAST = SDL_EVENT_RENDER_DEVICE_LOST, /* Reserved events for private platforms */ SDL_EVENT_PRIVATE0 = 0x4000,