isle-portable/3rdparty/sdl3-shim/SDL3/SDL_events.h

127 lines
4.1 KiB
C

#pragma once
#include "SDL.h"
#include <SDL2/SDL_events.h>
#include <SDL2/SDL_video.h>
// https://wiki.libsdl.org/SDL3/README-migration#sdl_eventsh
#define SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED (SDL_WINDOWEVENT + 2 + SDL_WINDOWEVENT_SIZE_CHANGED)
#define SDL_EVENT_WINDOW_CLOSE_REQUESTED (SDL_WINDOWEVENT + 2 + SDL_WINDOWEVENT_CLOSE)
#define SDL_EVENT_WINDOW_FOCUS_GAINED (SDL_WINDOWEVENT + 2 + SDL_WINDOWEVENT_FOCUS_GAINED)
#define SDL_EVENT_WINDOW_FOCUS_LOST (SDL_WINDOWEVENT + 2 + SDL_WINDOWEVENT_FOCUS_LOST)
// #define SDL_EVENT_MOUSE_BUTTON_DOWN SDL_MOUSEBUTTONDOWN
// #define SDL_EVENT_MOUSE_BUTTON_UP SDL_MOUSEBUTTONUP
// #define SDL_EVENT_MOUSE_MOTION SDL_MOUSEMOTION
//
// #define SDL_EVENT_FINGER_MOTION SDL_FINGERMOTION
// #define SDL_EVENT_FINGER_DOWN SDL_FINGERDOWN
// #define SDL_EVENT_FINGER_UP SDL_FINGERUP
#define SDL_EVENT_FINGER_CANCELED 0
#define SDL_EVENT_QUIT SDL_QUIT
#define SDL_EVENT_GAMEPAD_AXIS_MOTION SDL_CONTROLLERAXISMOTION
#define SDL_EVENT_GAMEPAD_BUTTON_DOWN SDL_CONTROLLERBUTTONDOWN
#define SDL_EVENT_GAMEPAD_BUTTON_UP SDL_CONTROLLERBUTTONUP
#define SDL_EVENT_GAMEPAD_ADDED SDL_CONTROLLERDEVICEADDED
// #define SDL_EVENT_GAMEPAD_REMAPPED SDL_CONTROLLERDEVICEREMAPPED
#define SDL_EVENT_GAMEPAD_REMOVED SDL_CONTROLLERDEVICEREMOVED
// #define SDL_EVENT_GAMEPAD_SENSOR_UPDATE SDL_CONTROLLERSENSORUPDATE
// #define SDL_EVENT_GAMEPAD_STEAM_HANDLE_UPDATED SDL_CONTROLLERSTEAMHANDLEUPDATED
// #define SDL_EVENT_GAMEPAD_TOUCHPAD_DOWN SDL_CONTROLLERTOUCHPADDOWN
// #define SDL_EVENT_GAMEPAD_TOUCHPAD_MOTION SDL_CONTROLLERTOUCHPADMOTION
// #define SDL_EVENT_GAMEPAD_TOUCHPAD_UP SDL_CONTROLLERTOUCHPADUP
// #define SDL_EVENT_DROP_BEGIN SDL_DROPBEGIN
// #define SDL_EVENT_DROP_COMPLETE SDL_DROPCOMPLETE
// #define SDL_EVENT_DROP_FILE SDL_DROPFILE
// #define SDL_EVENT_DROP_TEXT SDL_DROPTEXT
#define SDL_EVENT_FINGER_DOWN SDL_FINGERDOWN
#define SDL_EVENT_FINGER_MOTION SDL_FINGERMOTION
#define SDL_EVENT_FINGER_UP SDL_FINGERUP
// #define SDL_EVENT_FIRST SDL_FIRSTEVENT
// #define SDL_EVENT_JOYSTICK_AXIS_MOTION SDL_JOYAXISMOTION
// #define SDL_EVENT_JOYSTICK_BALL_MOTION SDL_JOYBALLMOTION
// #define SDL_EVENT_JOYSTICK_BATTERY_UPDATED SDL_JOYBATTERYUPDATED
// #define SDL_EVENT_JOYSTICK_BUTTON_DOWN SDL_JOYBUTTONDOWN
// #define SDL_EVENT_JOYSTICK_BUTTON_UP SDL_JOYBUTTONUP
// #define SDL_EVENT_JOYSTICK_ADDED SDL_JOYDEVICEADDED
// #define SDL_EVENT_JOYSTICK_REMOVED SDL_JOYDEVICEREMOVED
// #define SDL_EVENT_JOYSTICK_HAT_MOTION SDL_JOYHATMOTION
#define SDL_EVENT_KEY_DOWN SDL_KEYDOWN
// #define SDL_EVENT_KEYMAP_CHANGED SDL_KEYMAPCHANGED
#define SDL_EVENT_KEY_UP SDL_KEYUP
// #define SDL_EVENT_LAST SDL_LASTEVENT
// #define SDL_EVENT_LOCALE_CHANGED SDL_LOCALECHANGED
#define SDL_EVENT_MOUSE_BUTTON_DOWN SDL_MOUSEBUTTONDOWN
#define SDL_EVENT_MOUSE_BUTTON_UP SDL_MOUSEBUTTONUP
#define SDL_EVENT_MOUSE_MOTION SDL_MOUSEMOTION
// #define SDL_EVENT_MOUSE_WHEEL SDL_MOUSEWHEEL
// #define SDL_EVENT_POLL_SENTINEL SDL_POLLSENTINEL
#define fingerID fingerId
#define touchID touchId
#define gaxis caxis
#define gbutton cbutton
inline SDL_Window* SDL_GetWindowFromEvent(const SDL_Event* event)
{
Uint32 windowID = 0;
if (event->type >= SDL_USEREVENT && event->type <= SDL_LASTEVENT) {
windowID = event->user.windowID;
}
else {
switch (event->type) {
case SDL_WINDOWEVENT:
windowID = event->window.windowID;
break;
case SDL_KEYDOWN:
case SDL_KEYUP:
case SDL_KEYMAPCHANGED:
windowID = event->key.windowID;
break;
case SDL_TEXTEDITING:
windowID = event->edit.windowID;
break;
case SDL_TEXTINPUT:
windowID = event->text.windowID;
break;
case SDL_TEXTEDITING_EXT:
windowID = event->editExt.windowID;
break;
case SDL_MOUSEMOTION:
windowID = event->motion.windowID;
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
windowID = event->button.windowID;
break;
case SDL_MOUSEWHEEL:
windowID = event->wheel.windowID;
break;
case SDL_FINGERDOWN:
case SDL_FINGERUP:
case SDL_FINGERMOTION:
windowID = event->tfinger.windowID;
break;
case SDL_DROPFILE:
case SDL_DROPTEXT:
case SDL_DROPBEGIN:
case SDL_DROPCOMPLETE:
windowID = event->drop.windowID;
break;
}
}
return SDL_GetWindowFromID(windowID);
}