Toast Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
ui_key_map.hpp
Go to the documentation of this file.
1
8
9
#pragma once
10
#include <RmlUi/Core/Input.h>
11
#include <SDL3/SDL_keycode.h>
12
13
namespace
ui {
14
15
inline
auto
toRmlModifiers(
int
sdl_mods) ->
int
{
16
int
mods = 0;
17
if
((sdl_mods & SDL_KMOD_CTRL) != 0) {
18
mods |= Rml::Input::KM_CTRL;
19
}
20
if
((sdl_mods & SDL_KMOD_SHIFT) != 0) {
21
mods |= Rml::Input::KM_SHIFT;
22
}
23
if
((sdl_mods & SDL_KMOD_ALT) != 0) {
24
mods |= Rml::Input::KM_ALT;
25
}
26
if
((sdl_mods & SDL_KMOD_GUI) != 0) {
27
mods |= Rml::Input::KM_META;
28
}
29
if
((sdl_mods & SDL_KMOD_CAPS) != 0) {
30
mods |= Rml::Input::KM_CAPSLOCK;
31
}
32
if
((sdl_mods & SDL_KMOD_NUM) != 0) {
33
mods |= Rml::Input::KM_NUMLOCK;
34
}
35
return
mods;
36
}
37
38
// clang-format off
39
inline
auto
toRmlKey(
int
sdl_key) -> Rml::Input::KeyIdentifier {
40
using namespace
Rml::Input;
41
switch
(sdl_key) {
42
case
SDLK_A:
return
KI_A;
case
SDLK_B:
return
KI_B;
43
case
SDLK_C:
return
KI_C;
case
SDLK_D:
return
KI_D;
44
case
SDLK_E:
return
KI_E;
case
SDLK_F:
return
KI_F;
45
case
SDLK_G:
return
KI_G;
case
SDLK_H:
return
KI_H;
46
case
SDLK_I:
return
KI_I;
case
SDLK_J:
return
KI_J;
47
case
SDLK_K:
return
KI_K;
case
SDLK_L:
return
KI_L;
48
case
SDLK_M:
return
KI_M;
case
SDLK_N:
return
KI_N;
49
case
SDLK_O:
return
KI_O;
case
SDLK_P:
return
KI_P;
50
case
SDLK_Q:
return
KI_Q;
case
SDLK_R:
return
KI_R;
51
case
SDLK_S:
return
KI_S;
case
SDLK_T:
return
KI_T;
52
case
SDLK_U:
return
KI_U;
case
SDLK_V:
return
KI_V;
53
case
SDLK_W:
return
KI_W;
case
SDLK_X:
return
KI_X;
54
case
SDLK_Y:
return
KI_Y;
case
SDLK_Z:
return
KI_Z;
55
case
SDLK_0:
return
KI_0;
case
SDLK_1:
return
KI_1;
56
case
SDLK_2:
return
KI_2;
case
SDLK_3:
return
KI_3;
57
case
SDLK_4:
return
KI_4;
case
SDLK_5:
return
KI_5;
58
case
SDLK_6:
return
KI_6;
case
SDLK_7:
return
KI_7;
59
case
SDLK_8:
return
KI_8;
case
SDLK_9:
return
KI_9;
60
case
SDLK_SPACE:
return
KI_SPACE;
61
case
SDLK_RETURN:
return
KI_RETURN;
62
case
SDLK_KP_ENTER:
return
KI_NUMPADENTER;
63
case
SDLK_ESCAPE:
return
KI_ESCAPE;
64
case
SDLK_BACKSPACE:
return
KI_BACK;
65
case
SDLK_TAB:
return
KI_TAB;
66
case
SDLK_DELETE:
return
KI_DELETE;
67
case
SDLK_INSERT:
return
KI_INSERT;
68
case
SDLK_HOME:
return
KI_HOME;
69
case
SDLK_END:
return
KI_END;
70
case
SDLK_PAGEUP:
return
KI_PRIOR;
71
case
SDLK_PAGEDOWN:
return
KI_NEXT;
72
case
SDLK_LEFT:
return
KI_LEFT;
73
case
SDLK_RIGHT:
return
KI_RIGHT;
74
case
SDLK_UP:
return
KI_UP;
75
case
SDLK_DOWN:
return
KI_DOWN;
76
case
SDLK_SEMICOLON:
return
KI_OEM_1;
77
case
SDLK_EQUALS:
return
KI_OEM_PLUS;
78
case
SDLK_COMMA:
return
KI_OEM_COMMA;
79
case
SDLK_MINUS:
return
KI_OEM_MINUS;
80
case
SDLK_PERIOD:
return
KI_OEM_PERIOD;
81
case
SDLK_SLASH:
return
KI_OEM_2;
82
case
SDLK_GRAVE:
return
KI_OEM_3;
83
case
SDLK_LEFTBRACKET:
return
KI_OEM_4;
84
case
SDLK_BACKSLASH:
return
KI_OEM_5;
85
case
SDLK_RIGHTBRACKET:
return
KI_OEM_6;
86
case
SDLK_APOSTROPHE:
return
KI_OEM_7;
87
case
SDLK_KP_0:
return
KI_NUMPAD0;
case
SDLK_KP_1:
return
KI_NUMPAD1;
88
case
SDLK_KP_2:
return
KI_NUMPAD2;
case
SDLK_KP_3:
return
KI_NUMPAD3;
89
case
SDLK_KP_4:
return
KI_NUMPAD4;
case
SDLK_KP_5:
return
KI_NUMPAD5;
90
case
SDLK_KP_6:
return
KI_NUMPAD6;
case
SDLK_KP_7:
return
KI_NUMPAD7;
91
case
SDLK_KP_8:
return
KI_NUMPAD8;
case
SDLK_KP_9:
return
KI_NUMPAD9;
92
case
SDLK_KP_PLUS:
return
KI_ADD;
93
case
SDLK_KP_MINUS:
return
KI_SUBTRACT;
94
case
SDLK_KP_MULTIPLY:
return
KI_MULTIPLY;
95
case
SDLK_KP_DIVIDE:
return
KI_DIVIDE;
96
case
SDLK_KP_PERIOD:
return
KI_DECIMAL;
97
case
SDLK_F1:
return
KI_F1;
case
SDLK_F2:
return
KI_F2;
98
case
SDLK_F3:
return
KI_F3;
case
SDLK_F4:
return
KI_F4;
99
case
SDLK_F5:
return
KI_F5;
case
SDLK_F6:
return
KI_F6;
100
case
SDLK_F7:
return
KI_F7;
case
SDLK_F8:
return
KI_F8;
101
case
SDLK_F9:
return
KI_F9;
case
SDLK_F10:
return
KI_F10;
102
case
SDLK_F11:
return
KI_F11;
case
SDLK_F12:
return
KI_F12;
103
case
SDLK_LSHIFT:
return
KI_LSHIFT;
104
case
SDLK_RSHIFT:
return
KI_RSHIFT;
105
case
SDLK_LCTRL:
return
KI_LCONTROL;
106
case
SDLK_RCTRL:
return
KI_RCONTROL;
107
case
SDLK_LALT:
return
KI_LMENU;
108
case
SDLK_RALT:
return
KI_RMENU;
109
case
SDLK_CAPSLOCK:
return
KI_CAPITAL;
110
case
SDLK_PAUSE:
return
KI_PAUSE;
111
case
SDLK_PRINTSCREEN:
return
KI_SNAPSHOT;
112
case
SDLK_NUMLOCKCLEAR:
return
KI_NUMLOCK;
113
case
SDLK_SCROLLLOCK:
return
KI_SCROLL;
114
default
:
return
KI_UNKNOWN;
115
}
116
}
117
118
// clang-format on
119
120
}
engine
src
toast
ui
ui_key_map.hpp
Generated by
1.17.0