mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-17 12:51:15 +00:00
127 lines
4.1 KiB
C
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);
|
|
}
|