TWP: Move ImGui to backends

This commit is contained in:
scemino 2024-02-27 18:56:39 +01:00 committed by Eugene Sandulenko
parent 4df291584f
commit 100c996ce5

View File

@ -78,10 +78,9 @@ SdlEventSource::SdlEventSource()
: EventSource(), _scrollLock(false), _joystick(nullptr), _lastScreenID(0), _graphicsManager(nullptr), _queuedFakeMouseMove(false),
_lastHatPosition(SDL_HAT_CENTERED), _mouseX(0), _mouseY(0), _engineRunning(false)
#if SDL_VERSION_ATLEAST(2, 0, 0)
,
_queuedFakeKeyUp(false), _fakeKeyUp(), _controller(nullptr)
, _queuedFakeKeyUp(false), _fakeKeyUp(), _controller(nullptr)
#endif
{
{
int joystick_num = ConfMan.getInt("joystick_num");
if (joystick_num >= 0) {
// Initialize SDL joystick subsystem
@ -215,383 +214,198 @@ void SdlEventSource::SDLModToOSystemKeyFlags(SDL_Keymod mod, Common::Event &even
Common::KeyCode SdlEventSource::SDLToOSystemKeycode(const SDL_Keycode key) {
switch (key) {
case SDLK_BACKSPACE:
return Common::KEYCODE_BACKSPACE;
case SDLK_TAB:
return Common::KEYCODE_TAB;
case SDLK_CLEAR:
return Common::KEYCODE_CLEAR;
case SDLK_RETURN:
return Common::KEYCODE_RETURN;
case SDLK_PAUSE:
return Common::KEYCODE_PAUSE;
case SDLK_ESCAPE:
return Common::KEYCODE_ESCAPE;
case SDLK_SPACE:
return Common::KEYCODE_SPACE;
case SDLK_EXCLAIM:
return Common::KEYCODE_EXCLAIM;
case SDLK_QUOTEDBL:
return Common::KEYCODE_QUOTEDBL;
case SDLK_HASH:
return Common::KEYCODE_HASH;
case SDLK_DOLLAR:
return Common::KEYCODE_DOLLAR;
case SDLK_AMPERSAND:
return Common::KEYCODE_AMPERSAND;
case SDLK_QUOTE:
return Common::KEYCODE_QUOTE;
case SDLK_LEFTPAREN:
return Common::KEYCODE_LEFTPAREN;
case SDLK_RIGHTPAREN:
return Common::KEYCODE_RIGHTPAREN;
case SDLK_ASTERISK:
return Common::KEYCODE_ASTERISK;
case SDLK_PLUS:
return Common::KEYCODE_PLUS;
case SDLK_COMMA:
return Common::KEYCODE_COMMA;
case SDLK_MINUS:
return Common::KEYCODE_MINUS;
case SDLK_PERIOD:
return Common::KEYCODE_PERIOD;
case SDLK_SLASH:
return Common::KEYCODE_SLASH;
case SDLK_0:
return Common::KEYCODE_0;
case SDLK_1:
return Common::KEYCODE_1;
case SDLK_2:
return Common::KEYCODE_2;
case SDLK_3:
return Common::KEYCODE_3;
case SDLK_4:
return Common::KEYCODE_4;
case SDLK_5:
return Common::KEYCODE_5;
case SDLK_6:
return Common::KEYCODE_6;
case SDLK_7:
return Common::KEYCODE_7;
case SDLK_8:
return Common::KEYCODE_8;
case SDLK_9:
return Common::KEYCODE_9;
case SDLK_COLON:
return Common::KEYCODE_COLON;
case SDLK_SEMICOLON:
return Common::KEYCODE_SEMICOLON;
case SDLK_LESS:
return Common::KEYCODE_LESS;
case SDLK_EQUALS:
return Common::KEYCODE_EQUALS;
case SDLK_GREATER:
return Common::KEYCODE_GREATER;
case SDLK_QUESTION:
return Common::KEYCODE_QUESTION;
case SDLK_AT:
return Common::KEYCODE_AT;
case SDLK_LEFTBRACKET:
return Common::KEYCODE_LEFTBRACKET;
case SDLK_BACKSLASH:
return Common::KEYCODE_BACKSLASH;
case SDLK_RIGHTBRACKET:
return Common::KEYCODE_RIGHTBRACKET;
case SDLK_CARET:
return Common::KEYCODE_CARET;
case SDLK_UNDERSCORE:
return Common::KEYCODE_UNDERSCORE;
case SDLK_BACKQUOTE:
return Common::KEYCODE_BACKQUOTE;
case SDLK_a:
return Common::KEYCODE_a;
case SDLK_b:
return Common::KEYCODE_b;
case SDLK_c:
return Common::KEYCODE_c;
case SDLK_d:
return Common::KEYCODE_d;
case SDLK_e:
return Common::KEYCODE_e;
case SDLK_f:
return Common::KEYCODE_f;
case SDLK_g:
return Common::KEYCODE_g;
case SDLK_h:
return Common::KEYCODE_h;
case SDLK_i:
return Common::KEYCODE_i;
case SDLK_j:
return Common::KEYCODE_j;
case SDLK_k:
return Common::KEYCODE_k;
case SDLK_l:
return Common::KEYCODE_l;
case SDLK_m:
return Common::KEYCODE_m;
case SDLK_n:
return Common::KEYCODE_n;
case SDLK_o:
return Common::KEYCODE_o;
case SDLK_p:
return Common::KEYCODE_p;
case SDLK_q:
return Common::KEYCODE_q;
case SDLK_r:
return Common::KEYCODE_r;
case SDLK_s:
return Common::KEYCODE_s;
case SDLK_t:
return Common::KEYCODE_t;
case SDLK_u:
return Common::KEYCODE_u;
case SDLK_v:
return Common::KEYCODE_v;
case SDLK_w:
return Common::KEYCODE_w;
case SDLK_x:
return Common::KEYCODE_x;
case SDLK_y:
return Common::KEYCODE_y;
case SDLK_z:
return Common::KEYCODE_z;
case SDLK_DELETE:
return Common::KEYCODE_DELETE;
case SDLK_KP_PERIOD:
return Common::KEYCODE_KP_PERIOD;
case SDLK_KP_DIVIDE:
return Common::KEYCODE_KP_DIVIDE;
case SDLK_KP_MULTIPLY:
return Common::KEYCODE_KP_MULTIPLY;
case SDLK_KP_MINUS:
return Common::KEYCODE_KP_MINUS;
case SDLK_KP_PLUS:
return Common::KEYCODE_KP_PLUS;
case SDLK_KP_ENTER:
return Common::KEYCODE_KP_ENTER;
case SDLK_KP_EQUALS:
return Common::KEYCODE_KP_EQUALS;
case SDLK_UP:
return Common::KEYCODE_UP;
case SDLK_DOWN:
return Common::KEYCODE_DOWN;
case SDLK_RIGHT:
return Common::KEYCODE_RIGHT;
case SDLK_LEFT:
return Common::KEYCODE_LEFT;
case SDLK_INSERT:
return Common::KEYCODE_INSERT;
case SDLK_HOME:
return Common::KEYCODE_HOME;
case SDLK_END:
return Common::KEYCODE_END;
case SDLK_PAGEUP:
return Common::KEYCODE_PAGEUP;
case SDLK_PAGEDOWN:
return Common::KEYCODE_PAGEDOWN;
case SDLK_F1:
return Common::KEYCODE_F1;
case SDLK_F2:
return Common::KEYCODE_F2;
case SDLK_F3:
return Common::KEYCODE_F3;
case SDLK_F4:
return Common::KEYCODE_F4;
case SDLK_F5:
return Common::KEYCODE_F5;
case SDLK_F6:
return Common::KEYCODE_F6;
case SDLK_F7:
return Common::KEYCODE_F7;
case SDLK_F8:
return Common::KEYCODE_F8;
case SDLK_F9:
return Common::KEYCODE_F9;
case SDLK_F10:
return Common::KEYCODE_F10;
case SDLK_F11:
return Common::KEYCODE_F11;
case SDLK_F12:
return Common::KEYCODE_F12;
case SDLK_F13:
return Common::KEYCODE_F13;
case SDLK_F14:
return Common::KEYCODE_F14;
case SDLK_F15:
return Common::KEYCODE_F15;
case SDLK_CAPSLOCK:
return Common::KEYCODE_CAPSLOCK;
case SDLK_RSHIFT:
return Common::KEYCODE_RSHIFT;
case SDLK_LSHIFT:
return Common::KEYCODE_LSHIFT;
case SDLK_RCTRL:
return Common::KEYCODE_RCTRL;
case SDLK_LCTRL:
return Common::KEYCODE_LCTRL;
case SDLK_RALT:
return Common::KEYCODE_RALT;
case SDLK_LALT:
return Common::KEYCODE_LALT;
case SDLK_MODE:
return Common::KEYCODE_MODE;
case SDLK_HELP:
return Common::KEYCODE_HELP;
case SDLK_SYSREQ:
return Common::KEYCODE_SYSREQ;
case SDLK_MENU:
return Common::KEYCODE_MENU;
case SDLK_POWER:
return Common::KEYCODE_POWER;
case SDLK_BACKSPACE: return Common::KEYCODE_BACKSPACE;
case SDLK_TAB: return Common::KEYCODE_TAB;
case SDLK_CLEAR: return Common::KEYCODE_CLEAR;
case SDLK_RETURN: return Common::KEYCODE_RETURN;
case SDLK_PAUSE: return Common::KEYCODE_PAUSE;
case SDLK_ESCAPE: return Common::KEYCODE_ESCAPE;
case SDLK_SPACE: return Common::KEYCODE_SPACE;
case SDLK_EXCLAIM: return Common::KEYCODE_EXCLAIM;
case SDLK_QUOTEDBL: return Common::KEYCODE_QUOTEDBL;
case SDLK_HASH: return Common::KEYCODE_HASH;
case SDLK_DOLLAR: return Common::KEYCODE_DOLLAR;
case SDLK_AMPERSAND: return Common::KEYCODE_AMPERSAND;
case SDLK_QUOTE: return Common::KEYCODE_QUOTE;
case SDLK_LEFTPAREN: return Common::KEYCODE_LEFTPAREN;
case SDLK_RIGHTPAREN: return Common::KEYCODE_RIGHTPAREN;
case SDLK_ASTERISK: return Common::KEYCODE_ASTERISK;
case SDLK_PLUS: return Common::KEYCODE_PLUS;
case SDLK_COMMA: return Common::KEYCODE_COMMA;
case SDLK_MINUS: return Common::KEYCODE_MINUS;
case SDLK_PERIOD: return Common::KEYCODE_PERIOD;
case SDLK_SLASH: return Common::KEYCODE_SLASH;
case SDLK_0: return Common::KEYCODE_0;
case SDLK_1: return Common::KEYCODE_1;
case SDLK_2: return Common::KEYCODE_2;
case SDLK_3: return Common::KEYCODE_3;
case SDLK_4: return Common::KEYCODE_4;
case SDLK_5: return Common::KEYCODE_5;
case SDLK_6: return Common::KEYCODE_6;
case SDLK_7: return Common::KEYCODE_7;
case SDLK_8: return Common::KEYCODE_8;
case SDLK_9: return Common::KEYCODE_9;
case SDLK_COLON: return Common::KEYCODE_COLON;
case SDLK_SEMICOLON: return Common::KEYCODE_SEMICOLON;
case SDLK_LESS: return Common::KEYCODE_LESS;
case SDLK_EQUALS: return Common::KEYCODE_EQUALS;
case SDLK_GREATER: return Common::KEYCODE_GREATER;
case SDLK_QUESTION: return Common::KEYCODE_QUESTION;
case SDLK_AT: return Common::KEYCODE_AT;
case SDLK_LEFTBRACKET: return Common::KEYCODE_LEFTBRACKET;
case SDLK_BACKSLASH: return Common::KEYCODE_BACKSLASH;
case SDLK_RIGHTBRACKET: return Common::KEYCODE_RIGHTBRACKET;
case SDLK_CARET: return Common::KEYCODE_CARET;
case SDLK_UNDERSCORE: return Common::KEYCODE_UNDERSCORE;
case SDLK_BACKQUOTE: return Common::KEYCODE_BACKQUOTE;
case SDLK_a: return Common::KEYCODE_a;
case SDLK_b: return Common::KEYCODE_b;
case SDLK_c: return Common::KEYCODE_c;
case SDLK_d: return Common::KEYCODE_d;
case SDLK_e: return Common::KEYCODE_e;
case SDLK_f: return Common::KEYCODE_f;
case SDLK_g: return Common::KEYCODE_g;
case SDLK_h: return Common::KEYCODE_h;
case SDLK_i: return Common::KEYCODE_i;
case SDLK_j: return Common::KEYCODE_j;
case SDLK_k: return Common::KEYCODE_k;
case SDLK_l: return Common::KEYCODE_l;
case SDLK_m: return Common::KEYCODE_m;
case SDLK_n: return Common::KEYCODE_n;
case SDLK_o: return Common::KEYCODE_o;
case SDLK_p: return Common::KEYCODE_p;
case SDLK_q: return Common::KEYCODE_q;
case SDLK_r: return Common::KEYCODE_r;
case SDLK_s: return Common::KEYCODE_s;
case SDLK_t: return Common::KEYCODE_t;
case SDLK_u: return Common::KEYCODE_u;
case SDLK_v: return Common::KEYCODE_v;
case SDLK_w: return Common::KEYCODE_w;
case SDLK_x: return Common::KEYCODE_x;
case SDLK_y: return Common::KEYCODE_y;
case SDLK_z: return Common::KEYCODE_z;
case SDLK_DELETE: return Common::KEYCODE_DELETE;
case SDLK_KP_PERIOD: return Common::KEYCODE_KP_PERIOD;
case SDLK_KP_DIVIDE: return Common::KEYCODE_KP_DIVIDE;
case SDLK_KP_MULTIPLY: return Common::KEYCODE_KP_MULTIPLY;
case SDLK_KP_MINUS: return Common::KEYCODE_KP_MINUS;
case SDLK_KP_PLUS: return Common::KEYCODE_KP_PLUS;
case SDLK_KP_ENTER: return Common::KEYCODE_KP_ENTER;
case SDLK_KP_EQUALS: return Common::KEYCODE_KP_EQUALS;
case SDLK_UP: return Common::KEYCODE_UP;
case SDLK_DOWN: return Common::KEYCODE_DOWN;
case SDLK_RIGHT: return Common::KEYCODE_RIGHT;
case SDLK_LEFT: return Common::KEYCODE_LEFT;
case SDLK_INSERT: return Common::KEYCODE_INSERT;
case SDLK_HOME: return Common::KEYCODE_HOME;
case SDLK_END: return Common::KEYCODE_END;
case SDLK_PAGEUP: return Common::KEYCODE_PAGEUP;
case SDLK_PAGEDOWN: return Common::KEYCODE_PAGEDOWN;
case SDLK_F1: return Common::KEYCODE_F1;
case SDLK_F2: return Common::KEYCODE_F2;
case SDLK_F3: return Common::KEYCODE_F3;
case SDLK_F4: return Common::KEYCODE_F4;
case SDLK_F5: return Common::KEYCODE_F5;
case SDLK_F6: return Common::KEYCODE_F6;
case SDLK_F7: return Common::KEYCODE_F7;
case SDLK_F8: return Common::KEYCODE_F8;
case SDLK_F9: return Common::KEYCODE_F9;
case SDLK_F10: return Common::KEYCODE_F10;
case SDLK_F11: return Common::KEYCODE_F11;
case SDLK_F12: return Common::KEYCODE_F12;
case SDLK_F13: return Common::KEYCODE_F13;
case SDLK_F14: return Common::KEYCODE_F14;
case SDLK_F15: return Common::KEYCODE_F15;
case SDLK_CAPSLOCK: return Common::KEYCODE_CAPSLOCK;
case SDLK_RSHIFT: return Common::KEYCODE_RSHIFT;
case SDLK_LSHIFT: return Common::KEYCODE_LSHIFT;
case SDLK_RCTRL: return Common::KEYCODE_RCTRL;
case SDLK_LCTRL: return Common::KEYCODE_LCTRL;
case SDLK_RALT: return Common::KEYCODE_RALT;
case SDLK_LALT: return Common::KEYCODE_LALT;
case SDLK_MODE: return Common::KEYCODE_MODE;
case SDLK_HELP: return Common::KEYCODE_HELP;
case SDLK_SYSREQ: return Common::KEYCODE_SYSREQ;
case SDLK_MENU: return Common::KEYCODE_MENU;
case SDLK_POWER: return Common::KEYCODE_POWER;
#if SDL_VERSION_ATLEAST(1, 2, 3)
case SDLK_UNDO:
return Common::KEYCODE_UNDO;
case SDLK_UNDO: return Common::KEYCODE_UNDO;
#endif
#if SDL_VERSION_ATLEAST(2, 0, 0)
case SDLK_SCROLLLOCK:
return Common::KEYCODE_SCROLLOCK;
case SDLK_NUMLOCKCLEAR:
return Common::KEYCODE_NUMLOCK;
case SDLK_LGUI:
return Common::KEYCODE_LSUPER;
case SDLK_RGUI:
return Common::KEYCODE_RSUPER;
case SDLK_PRINTSCREEN:
return Common::KEYCODE_PRINT;
case SDLK_APPLICATION:
return Common::KEYCODE_COMPOSE;
case SDLK_KP_0:
return Common::KEYCODE_KP0;
case SDLK_KP_1:
return Common::KEYCODE_KP1;
case SDLK_KP_2:
return Common::KEYCODE_KP2;
case SDLK_KP_3:
return Common::KEYCODE_KP3;
case SDLK_KP_4:
return Common::KEYCODE_KP4;
case SDLK_KP_5:
return Common::KEYCODE_KP5;
case SDLK_KP_6:
return Common::KEYCODE_KP6;
case SDLK_KP_7:
return Common::KEYCODE_KP7;
case SDLK_KP_8:
return Common::KEYCODE_KP8;
case SDLK_KP_9:
return Common::KEYCODE_KP9;
case SDLK_PERCENT:
return Common::KEYCODE_PERCENT;
case SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_GRAVE):
return Common::KEYCODE_TILDE;
case SDLK_F16:
return Common::KEYCODE_F16;
case SDLK_F17:
return Common::KEYCODE_F17;
case SDLK_F18:
return Common::KEYCODE_F18;
case SDLK_SLEEP:
return Common::KEYCODE_SLEEP;
case SDLK_MUTE:
return Common::KEYCODE_MUTE;
case SDLK_VOLUMEUP:
return Common::KEYCODE_VOLUMEUP;
case SDLK_VOLUMEDOWN:
return Common::KEYCODE_VOLUMEDOWN;
case SDLK_EJECT:
return Common::KEYCODE_EJECT;
case SDLK_WWW:
return Common::KEYCODE_WWW;
case SDLK_MAIL:
return Common::KEYCODE_MAIL;
case SDLK_CALCULATOR:
return Common::KEYCODE_CALCULATOR;
case SDLK_CUT:
return Common::KEYCODE_CUT;
case SDLK_COPY:
return Common::KEYCODE_COPY;
case SDLK_PASTE:
return Common::KEYCODE_PASTE;
case SDLK_SELECT:
return Common::KEYCODE_SELECT;
case SDLK_CANCEL:
return Common::KEYCODE_CANCEL;
case SDLK_AC_SEARCH:
return Common::KEYCODE_AC_SEARCH;
case SDLK_AC_HOME:
return Common::KEYCODE_AC_HOME;
case SDLK_AC_BACK:
return Common::KEYCODE_AC_BACK;
case SDLK_AC_FORWARD:
return Common::KEYCODE_AC_FORWARD;
case SDLK_AC_STOP:
return Common::KEYCODE_AC_STOP;
case SDLK_AC_REFRESH:
return Common::KEYCODE_AC_REFRESH;
case SDLK_AC_BOOKMARKS:
return Common::KEYCODE_AC_BOOKMARKS;
case SDLK_AUDIONEXT:
return Common::KEYCODE_AUDIONEXT;
case SDLK_AUDIOPREV:
return Common::KEYCODE_AUDIOPREV;
case SDLK_AUDIOSTOP:
return Common::KEYCODE_AUDIOSTOP;
case SDLK_AUDIOPLAY:
return Common::KEYCODE_AUDIOPLAYPAUSE;
case SDLK_AUDIOMUTE:
return Common::KEYCODE_AUDIOMUTE;
case SDLK_SCROLLLOCK: return Common::KEYCODE_SCROLLOCK;
case SDLK_NUMLOCKCLEAR: return Common::KEYCODE_NUMLOCK;
case SDLK_LGUI: return Common::KEYCODE_LSUPER;
case SDLK_RGUI: return Common::KEYCODE_RSUPER;
case SDLK_PRINTSCREEN: return Common::KEYCODE_PRINT;
case SDLK_APPLICATION: return Common::KEYCODE_COMPOSE;
case SDLK_KP_0: return Common::KEYCODE_KP0;
case SDLK_KP_1: return Common::KEYCODE_KP1;
case SDLK_KP_2: return Common::KEYCODE_KP2;
case SDLK_KP_3: return Common::KEYCODE_KP3;
case SDLK_KP_4: return Common::KEYCODE_KP4;
case SDLK_KP_5: return Common::KEYCODE_KP5;
case SDLK_KP_6: return Common::KEYCODE_KP6;
case SDLK_KP_7: return Common::KEYCODE_KP7;
case SDLK_KP_8: return Common::KEYCODE_KP8;
case SDLK_KP_9: return Common::KEYCODE_KP9;
case SDLK_PERCENT: return Common::KEYCODE_PERCENT;
case SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_GRAVE): return Common::KEYCODE_TILDE;
case SDLK_F16: return Common::KEYCODE_F16;
case SDLK_F17: return Common::KEYCODE_F17;
case SDLK_F18: return Common::KEYCODE_F18;
case SDLK_SLEEP: return Common::KEYCODE_SLEEP;
case SDLK_MUTE: return Common::KEYCODE_MUTE;
case SDLK_VOLUMEUP: return Common::KEYCODE_VOLUMEUP;
case SDLK_VOLUMEDOWN: return Common::KEYCODE_VOLUMEDOWN;
case SDLK_EJECT: return Common::KEYCODE_EJECT;
case SDLK_WWW: return Common::KEYCODE_WWW;
case SDLK_MAIL: return Common::KEYCODE_MAIL;
case SDLK_CALCULATOR: return Common::KEYCODE_CALCULATOR;
case SDLK_CUT: return Common::KEYCODE_CUT;
case SDLK_COPY: return Common::KEYCODE_COPY;
case SDLK_PASTE: return Common::KEYCODE_PASTE;
case SDLK_SELECT: return Common::KEYCODE_SELECT;
case SDLK_CANCEL: return Common::KEYCODE_CANCEL;
case SDLK_AC_SEARCH: return Common::KEYCODE_AC_SEARCH;
case SDLK_AC_HOME: return Common::KEYCODE_AC_HOME;
case SDLK_AC_BACK: return Common::KEYCODE_AC_BACK;
case SDLK_AC_FORWARD: return Common::KEYCODE_AC_FORWARD;
case SDLK_AC_STOP: return Common::KEYCODE_AC_STOP;
case SDLK_AC_REFRESH: return Common::KEYCODE_AC_REFRESH;
case SDLK_AC_BOOKMARKS: return Common::KEYCODE_AC_BOOKMARKS;
case SDLK_AUDIONEXT: return Common::KEYCODE_AUDIONEXT;
case SDLK_AUDIOPREV: return Common::KEYCODE_AUDIOPREV;
case SDLK_AUDIOSTOP: return Common::KEYCODE_AUDIOSTOP;
case SDLK_AUDIOPLAY: return Common::KEYCODE_AUDIOPLAYPAUSE;
case SDLK_AUDIOMUTE: return Common::KEYCODE_AUDIOMUTE;
#if SDL_VERSION_ATLEAST(2, 0, 6)
case SDLK_AUDIOREWIND:
return Common::KEYCODE_AUDIOREWIND;
case SDLK_AUDIOFASTFORWARD:
return Common::KEYCODE_AUDIOFASTFORWARD;
case SDLK_AUDIOREWIND: return Common::KEYCODE_AUDIOREWIND;
case SDLK_AUDIOFASTFORWARD: return Common::KEYCODE_AUDIOFASTFORWARD;
#endif
#else
case SDLK_SCROLLOCK:
return Common::KEYCODE_SCROLLOCK;
case SDLK_NUMLOCK:
return Common::KEYCODE_NUMLOCK;
case SDLK_LSUPER:
return Common::KEYCODE_LSUPER;
case SDLK_RSUPER:
return Common::KEYCODE_RSUPER;
case SDLK_PRINT:
return Common::KEYCODE_PRINT;
case SDLK_COMPOSE:
return Common::KEYCODE_COMPOSE;
case SDLK_KP0:
return Common::KEYCODE_KP0;
case SDLK_KP1:
return Common::KEYCODE_KP1;
case SDLK_KP2:
return Common::KEYCODE_KP2;
case SDLK_KP3:
return Common::KEYCODE_KP3;
case SDLK_KP4:
return Common::KEYCODE_KP4;
case SDLK_KP5:
return Common::KEYCODE_KP5;
case SDLK_KP6:
return Common::KEYCODE_KP6;
case SDLK_KP7:
return Common::KEYCODE_KP7;
case SDLK_KP8:
return Common::KEYCODE_KP8;
case SDLK_KP9:
return Common::KEYCODE_KP9;
case SDLK_WORLD_16:
return Common::KEYCODE_TILDE;
case SDLK_BREAK:
return Common::KEYCODE_BREAK;
case SDLK_LMETA:
return Common::KEYCODE_LMETA;
case SDLK_RMETA:
return Common::KEYCODE_RMETA;
case SDLK_EURO:
return Common::KEYCODE_EURO;
case SDLK_SCROLLOCK: return Common::KEYCODE_SCROLLOCK;
case SDLK_NUMLOCK: return Common::KEYCODE_NUMLOCK;
case SDLK_LSUPER: return Common::KEYCODE_LSUPER;
case SDLK_RSUPER: return Common::KEYCODE_RSUPER;
case SDLK_PRINT: return Common::KEYCODE_PRINT;
case SDLK_COMPOSE: return Common::KEYCODE_COMPOSE;
case SDLK_KP0: return Common::KEYCODE_KP0;
case SDLK_KP1: return Common::KEYCODE_KP1;
case SDLK_KP2: return Common::KEYCODE_KP2;
case SDLK_KP3: return Common::KEYCODE_KP3;
case SDLK_KP4: return Common::KEYCODE_KP4;
case SDLK_KP5: return Common::KEYCODE_KP5;
case SDLK_KP6: return Common::KEYCODE_KP6;
case SDLK_KP7: return Common::KEYCODE_KP7;
case SDLK_KP8: return Common::KEYCODE_KP8;
case SDLK_KP9: return Common::KEYCODE_KP9;
case SDLK_WORLD_16: return Common::KEYCODE_TILDE;
case SDLK_BREAK: return Common::KEYCODE_BREAK;
case SDLK_LMETA: return Common::KEYCODE_LMETA;
case SDLK_RMETA: return Common::KEYCODE_RMETA;
case SDLK_EURO: return Common::KEYCODE_EURO;
#endif
default:
return Common::KEYCODE_INVALID;
default: return Common::KEYCODE_INVALID;
}
}
@ -672,7 +486,7 @@ bool SdlEventSource::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
} else {
return false;
}
}
}
case SDL_TEXTINPUT: {
// When we get a TEXTINPUT event it means we got some user input for
@ -693,7 +507,7 @@ bool SdlEventSource::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
_fakeKeyUp.type = Common::EVENT_KEYUP;
return _queuedFakeKeyUp;
}
}
case SDL_WINDOWEVENT:
// We're only interested in events from the current display window
@ -722,7 +536,7 @@ bool SdlEventSource::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
// However if the documentation is correct we can ignore SDL_WINDOWEVENT_RESIZED since when we
// get one we should always get a SDL_WINDOWEVENT_SIZE_CHANGED as well.
case SDL_WINDOWEVENT_SIZE_CHANGED:
// case SDL_WINDOWEVENT_RESIZED:
//case SDL_WINDOWEVENT_RESIZED:
return handleResizeEvent(event, ev.window.data1, ev.window.data2);
case SDL_WINDOWEVENT_FOCUS_GAINED: {
@ -815,6 +629,7 @@ bool SdlEventSource::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
return false;
}
bool SdlEventSource::handleKeyDown(SDL_Event &ev, Common::Event &event) {
SDLModToOSystemKeyFlags(SDL_GetModState(), event);
@ -982,16 +797,17 @@ void SdlEventSource::closeJoystick() {
int SdlEventSource::mapSDLJoystickButtonToOSystem(Uint8 sdlButton) {
Common::JoystickButton osystemButtons[] = {
Common::JOYSTICK_BUTTON_A,
Common::JOYSTICK_BUTTON_B,
Common::JOYSTICK_BUTTON_X,
Common::JOYSTICK_BUTTON_Y,
Common::JOYSTICK_BUTTON_LEFT_SHOULDER,
Common::JOYSTICK_BUTTON_RIGHT_SHOULDER,
Common::JOYSTICK_BUTTON_BACK,
Common::JOYSTICK_BUTTON_START,
Common::JOYSTICK_BUTTON_LEFT_STICK,
Common::JOYSTICK_BUTTON_RIGHT_STICK};
Common::JOYSTICK_BUTTON_A,
Common::JOYSTICK_BUTTON_B,
Common::JOYSTICK_BUTTON_X,
Common::JOYSTICK_BUTTON_Y,
Common::JOYSTICK_BUTTON_LEFT_SHOULDER,
Common::JOYSTICK_BUTTON_RIGHT_SHOULDER,
Common::JOYSTICK_BUTTON_BACK,
Common::JOYSTICK_BUTTON_START,
Common::JOYSTICK_BUTTON_LEFT_STICK,
Common::JOYSTICK_BUTTON_RIGHT_STICK
};
if (sdlButton >= ARRAYSIZE(osystemButtons)) {
return -1;
@ -1032,15 +848,15 @@ bool SdlEventSource::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
return true;
}
#define HANDLE_HAT_UP(new, old, mask, joybutton) \
if ((old & mask) && !(new &mask)) { \
event.joystick.button = joybutton; \
#define HANDLE_HAT_UP(new, old, mask, joybutton) \
if ((old & mask) && !(new & mask)) { \
event.joystick.button = joybutton; \
g_system->getEventManager()->pushEvent(event); \
}
#define HANDLE_HAT_DOWN(new, old, mask, joybutton) \
if ((new &mask) && !(old & mask)) { \
event.joystick.button = joybutton; \
#define HANDLE_HAT_DOWN(new, old, mask, joybutton) \
if ((new & mask) && !(old & mask)) { \
event.joystick.button = joybutton; \
g_system->getEventManager()->pushEvent(event); \
}
@ -1108,21 +924,22 @@ bool SdlEventSource::handleJoystickRemoved(const SDL_JoyDeviceEvent &device, Com
int SdlEventSource::mapSDLControllerButtonToOSystem(Uint8 sdlButton) {
Common::JoystickButton osystemButtons[] = {
Common::JOYSTICK_BUTTON_A,
Common::JOYSTICK_BUTTON_B,
Common::JOYSTICK_BUTTON_X,
Common::JOYSTICK_BUTTON_Y,
Common::JOYSTICK_BUTTON_BACK,
Common::JOYSTICK_BUTTON_GUIDE,
Common::JOYSTICK_BUTTON_START,
Common::JOYSTICK_BUTTON_LEFT_STICK,
Common::JOYSTICK_BUTTON_RIGHT_STICK,
Common::JOYSTICK_BUTTON_LEFT_SHOULDER,
Common::JOYSTICK_BUTTON_RIGHT_SHOULDER,
Common::JOYSTICK_BUTTON_DPAD_UP,
Common::JOYSTICK_BUTTON_DPAD_DOWN,
Common::JOYSTICK_BUTTON_DPAD_LEFT,
Common::JOYSTICK_BUTTON_DPAD_RIGHT};
Common::JOYSTICK_BUTTON_A,
Common::JOYSTICK_BUTTON_B,
Common::JOYSTICK_BUTTON_X,
Common::JOYSTICK_BUTTON_Y,
Common::JOYSTICK_BUTTON_BACK,
Common::JOYSTICK_BUTTON_GUIDE,
Common::JOYSTICK_BUTTON_START,
Common::JOYSTICK_BUTTON_LEFT_STICK,
Common::JOYSTICK_BUTTON_RIGHT_STICK,
Common::JOYSTICK_BUTTON_LEFT_SHOULDER,
Common::JOYSTICK_BUTTON_RIGHT_SHOULDER,
Common::JOYSTICK_BUTTON_DPAD_UP,
Common::JOYSTICK_BUTTON_DPAD_DOWN,
Common::JOYSTICK_BUTTON_DPAD_LEFT,
Common::JOYSTICK_BUTTON_DPAD_RIGHT
};
if (sdlButton >= ARRAYSIZE(osystemButtons)) {
return -1;
@ -1165,9 +982,9 @@ void SdlEventSource::fakeWarpMouse(const int x, const int y) {
bool SdlEventSource::isJoystickConnected() const {
return _joystick
#if SDL_VERSION_ATLEAST(2, 0, 0)
|| _controller
|| _controller
#endif
;
;
}
void SdlEventSource::setEngineRunning(const bool value) {
@ -1254,7 +1071,8 @@ uint32 SdlEventSource::obtainUnicode(const SDL_Keysym keySym) {
int n = SDL_PeepEvents(events, 2, SDL_PEEKEVENT, SDL_KEYDOWN, SDL_TEXTINPUT);
// Make sure that the TEXTINPUT event belongs to this KEYDOWN
// event and not another pending one.
if ((n > 0 && events[0].type == SDL_TEXTINPUT) || (n > 1 && events[0].type != SDL_KEYDOWN && events[1].type == SDL_TEXTINPUT)) {
if ((n > 0 && events[0].type == SDL_TEXTINPUT)
|| (n > 1 && events[0].type != SDL_KEYDOWN && events[1].type == SDL_TEXTINPUT)) {
// Remove the text input event we associate with the key press. This
// makes sure we never get any SDL_TEXTINPUT events which do "belong"
// to SDL_KEYDOWN events.