Practical Tools for Simple Design
Loading...
Searching...
No Matches
Keycode.hpp
1#ifndef UTIL_KEYCODE_HPP
2#define UTIL_KEYCODE_HPP
3
4#include "pch.hpp" // IWYU pragma: export
5
6#include <SDL_scancode.h>
7
8namespace Util {
9// Prevents from auto format checking fail
10// clang-format off
11enum class Keycode {
12 UNKNOWN = 0,
13
19 /* @{ */
20
21 A = SDL_SCANCODE_A,
22 B = SDL_SCANCODE_B,
23 C = SDL_SCANCODE_C,
24 D = SDL_SCANCODE_D,
25 E = SDL_SCANCODE_E,
26 F = SDL_SCANCODE_F,
27 G = SDL_SCANCODE_G,
28 H = SDL_SCANCODE_H,
29 I = SDL_SCANCODE_I,
30 J = SDL_SCANCODE_J,
31 K = SDL_SCANCODE_K,
32 L = SDL_SCANCODE_L,
33 M = SDL_SCANCODE_M,
34 N = SDL_SCANCODE_N,
35 O = SDL_SCANCODE_O,
36 P = SDL_SCANCODE_P,
37 Q = SDL_SCANCODE_Q,
38 R = SDL_SCANCODE_R,
39 S = SDL_SCANCODE_S,
40 T = SDL_SCANCODE_T,
41 U = SDL_SCANCODE_U,
42 V = SDL_SCANCODE_V,
43 W = SDL_SCANCODE_W,
44 X = SDL_SCANCODE_X,
45 Y = SDL_SCANCODE_Y,
46 Z = SDL_SCANCODE_Z,
47 NUM_1 = SDL_SCANCODE_1,
48 NUM_2 = SDL_SCANCODE_2,
49 NUM_3 = SDL_SCANCODE_3,
50 NUM_4 = SDL_SCANCODE_4,
51 NUM_5 = SDL_SCANCODE_5,
52 NUM_6 = SDL_SCANCODE_6,
53 NUM_7 = SDL_SCANCODE_7,
54 NUM_8 = SDL_SCANCODE_8,
55 NUM_9 = SDL_SCANCODE_9,
56 NUM_0 = SDL_SCANCODE_0,
57
58 RETURN = SDL_SCANCODE_RETURN,
59 ESCAPE = SDL_SCANCODE_ESCAPE,
60 BACKSPACE = SDL_SCANCODE_BACKSPACE,
61 TAB = SDL_SCANCODE_TAB,
62 SPACE = SDL_SCANCODE_SPACE,
63
64 MINUS = SDL_SCANCODE_MINUS,
65 EQUALS = SDL_SCANCODE_EQUALS,
66 LEFTBRACKET = SDL_SCANCODE_LEFTBRACKET,
67 RIGHTBRACKET = SDL_SCANCODE_RIGHTBRACKET,
68 BACKSLASH = SDL_SCANCODE_BACKSLASH,
82 NONUSHASH = SDL_SCANCODE_NONUSHASH,
94 SEMICOLON = SDL_SCANCODE_SEMICOLON,
95 APOSTROPHE = SDL_SCANCODE_APOSTROPHE,
96 GRAVE = SDL_SCANCODE_GRAVE,
113 COMMA = SDL_SCANCODE_COMMA,
114 PERIOD = SDL_SCANCODE_PERIOD,
115 SLASH = SDL_SCANCODE_SLASH,
116
117 CAPSLOCK = SDL_SCANCODE_CAPSLOCK,
118
119 F1 = SDL_SCANCODE_F1,
120 F2 = SDL_SCANCODE_F2,
121 F3 = SDL_SCANCODE_F3,
122 F4 = SDL_SCANCODE_F4,
123 F5 = SDL_SCANCODE_F5,
124 F6 = SDL_SCANCODE_F6,
125 F7 = SDL_SCANCODE_F7,
126 F8 = SDL_SCANCODE_F8,
127 F9 = SDL_SCANCODE_F9,
128 F10 = SDL_SCANCODE_F10,
129 F11 = SDL_SCANCODE_F11,
130 F12 = SDL_SCANCODE_F12,
131
132 PRINTSCREEN = SDL_SCANCODE_PRINTSCREEN,
133 SCROLLLOCK = SDL_SCANCODE_SCROLLLOCK,
134 PAUSE = SDL_SCANCODE_PAUSE,
135 INSERT = SDL_SCANCODE_INSERT,
137 HOME = SDL_SCANCODE_HOME,
138 PAGEUP = SDL_SCANCODE_PAGEUP,
139 DELETE = SDL_SCANCODE_DELETE,
140 END = SDL_SCANCODE_END,
141 PAGEDOWN = SDL_SCANCODE_PAGEDOWN,
142 RIGHT = SDL_SCANCODE_RIGHT,
143 LEFT = SDL_SCANCODE_LEFT,
144 DOWN = SDL_SCANCODE_DOWN,
145 UP = SDL_SCANCODE_UP,
146
147 NUMLOCKCLEAR = SDL_SCANCODE_NUMLOCKCLEAR,
149 KP_DIVIDE = SDL_SCANCODE_KP_DIVIDE,
150 KP_MULTIPLY = SDL_SCANCODE_KP_MULTIPLY,
151 KP_MINUS = SDL_SCANCODE_KP_MINUS,
152 KP_PLUS = SDL_SCANCODE_KP_PLUS,
153 KP_ENTER = SDL_SCANCODE_KP_ENTER,
154 KP_1 = SDL_SCANCODE_KP_1,
155 KP_2 = SDL_SCANCODE_KP_2,
156 KP_3 = SDL_SCANCODE_KP_3,
157 KP_4 = SDL_SCANCODE_KP_4,
158 KP_5 = SDL_SCANCODE_KP_5,
159 KP_6 = SDL_SCANCODE_KP_6,
160 KP_7 = SDL_SCANCODE_KP_7,
161 KP_8 = SDL_SCANCODE_KP_8,
162 KP_9 = SDL_SCANCODE_KP_9,
163 KP_0 = SDL_SCANCODE_KP_0,
164 KP_PERIOD = SDL_SCANCODE_KP_PERIOD,
165
166 NONUSBACKSLASH = SDL_SCANCODE_NONUSBACKSLASH,
176 APPLICATION = SDL_SCANCODE_APPLICATION,
177 POWER = SDL_SCANCODE_POWER,
180 KP_EQUALS = SDL_SCANCODE_KP_EQUALS,
181 F13 = SDL_SCANCODE_F13,
182 F14 = SDL_SCANCODE_F14,
183 F15 = SDL_SCANCODE_F15,
184 F16 = SDL_SCANCODE_F16,
185 F17 = SDL_SCANCODE_F17,
186 F18 = SDL_SCANCODE_F18,
187 F19 = SDL_SCANCODE_F19,
188 F20 = SDL_SCANCODE_F20,
189 F21 = SDL_SCANCODE_F21,
190 F22 = SDL_SCANCODE_F22,
191 F23 = SDL_SCANCODE_F23,
192 F24 = SDL_SCANCODE_F24,
193 EXECUTE = SDL_SCANCODE_EXECUTE,
194 HELP = SDL_SCANCODE_HELP,
195 MENU = SDL_SCANCODE_MENU,
196 SELECT = SDL_SCANCODE_SELECT,
197 STOP = SDL_SCANCODE_STOP,
198 AGAIN = SDL_SCANCODE_AGAIN,
199 UNDO = SDL_SCANCODE_UNDO,
200 CUT = SDL_SCANCODE_CUT,
201 COPY = SDL_SCANCODE_COPY,
202 PASTE = SDL_SCANCODE_PASTE,
203 FIND = SDL_SCANCODE_FIND,
204 MUTE = SDL_SCANCODE_MUTE,
205 VOLUMEUP = SDL_SCANCODE_VOLUMEUP,
206 VOLUMEDOWN = SDL_SCANCODE_VOLUMEDOWN,
207 /* not sure whether there's a reason to enable these */
208 /* LOCKINGCAPSLOCK = 130, */
209 /* LOCKINGNUMLOCK = 131, */
210 /* LOCKINGSCROLLLOCK = 132, */
211 KP_COMMA = SDL_SCANCODE_KP_COMMA,
212 KP_EQUALSAS400 = SDL_SCANCODE_KP_EQUALSAS400,
213
214 INTERNATIONAL1 = SDL_SCANCODE_INTERNATIONAL1,
216 INTERNATIONAL2 = SDL_SCANCODE_INTERNATIONAL2,
217 INTERNATIONAL3 = SDL_SCANCODE_INTERNATIONAL3,
218 INTERNATIONAL4 = SDL_SCANCODE_INTERNATIONAL4,
219 INTERNATIONAL5 = SDL_SCANCODE_INTERNATIONAL5,
220 INTERNATIONAL6 = SDL_SCANCODE_INTERNATIONAL6,
221 INTERNATIONAL7 = SDL_SCANCODE_INTERNATIONAL7,
222 INTERNATIONAL8 = SDL_SCANCODE_INTERNATIONAL8,
223 INTERNATIONAL9 = SDL_SCANCODE_INTERNATIONAL9,
224 LANG1 = SDL_SCANCODE_LANG1,
225 LANG2 = SDL_SCANCODE_LANG2,
226 LANG3 = SDL_SCANCODE_LANG3,
227 LANG4 = SDL_SCANCODE_LANG4,
228 LANG5 = SDL_SCANCODE_LANG5,
229 LANG6 = SDL_SCANCODE_LANG6,
230 LANG7 = SDL_SCANCODE_LANG7,
231 LANG8 = SDL_SCANCODE_LANG8,
232 LANG9 = SDL_SCANCODE_LANG9,
234 ALTERASE = SDL_SCANCODE_ALTERASE,
235 SYSREQ = SDL_SCANCODE_SYSREQ,
236 CANCEL = SDL_SCANCODE_CANCEL,
237 CLEAR = SDL_SCANCODE_CLEAR,
238 PRIOR = SDL_SCANCODE_PRIOR,
239 RETURN2 = SDL_SCANCODE_RETURN2,
240 SEPARATOR = SDL_SCANCODE_SEPARATOR,
241 OUT = SDL_SCANCODE_OUT,
242 OPER = SDL_SCANCODE_OPER,
243 CLEARAGAIN = SDL_SCANCODE_CLEARAGAIN,
244 CRSEL = SDL_SCANCODE_CRSEL,
245 EXSEL = SDL_SCANCODE_EXSEL,
246
247 KP_00 = SDL_SCANCODE_KP_00,
248 KP_000 = SDL_SCANCODE_KP_000,
249 THOUSANDSSEPARATOR = SDL_SCANCODE_THOUSANDSSEPARATOR,
250 DECIMALSEPARATOR = SDL_SCANCODE_DECIMALSEPARATOR,
251 CURRENCYUNIT = SDL_SCANCODE_CURRENCYUNIT,
252 CURRENCYSUBUNIT = SDL_SCANCODE_CURRENCYSUBUNIT,
253 KP_LEFTPAREN = SDL_SCANCODE_KP_LEFTPAREN,
254 KP_RIGHTPAREN = SDL_SCANCODE_KP_RIGHTPAREN,
255 KP_LEFTBRACE = SDL_SCANCODE_KP_LEFTBRACE,
256 KP_RIGHTBRACE = SDL_SCANCODE_KP_RIGHTBRACE,
257 KP_TAB = SDL_SCANCODE_KP_TAB,
258 KP_BACKSPACE = SDL_SCANCODE_KP_BACKSPACE,
259 KP_A = SDL_SCANCODE_KP_A,
260 KP_B = SDL_SCANCODE_KP_B,
261 KP_C = SDL_SCANCODE_KP_C,
262 KP_D = SDL_SCANCODE_KP_D,
263 KP_E = SDL_SCANCODE_KP_E,
264 KP_F = SDL_SCANCODE_KP_F,
265 KP_XOR = SDL_SCANCODE_KP_XOR,
266 KP_POWER = SDL_SCANCODE_KP_POWER,
267 KP_PERCENT = SDL_SCANCODE_KP_PERCENT,
268 KP_LESS = SDL_SCANCODE_KP_LESS,
269 KP_GREATER = SDL_SCANCODE_KP_GREATER,
270 KP_AMPERSAND = SDL_SCANCODE_KP_AMPERSAND,
271 KP_DBLAMPERSAND = SDL_SCANCODE_KP_DBLAMPERSAND,
272 KP_VERTICALBAR = SDL_SCANCODE_KP_VERTICALBAR,
273 KP_DBLVERTICALBAR = SDL_SCANCODE_KP_DBLVERTICALBAR,
274 KP_COLON = SDL_SCANCODE_KP_COLON,
275 KP_HASH = SDL_SCANCODE_KP_HASH,
276 KP_SPACE = SDL_SCANCODE_KP_SPACE,
277 KP_AT = SDL_SCANCODE_KP_AT,
278 KP_EXCLAM = SDL_SCANCODE_KP_EXCLAM,
279 KP_MEMSTORE = SDL_SCANCODE_KP_MEMSTORE,
280 KP_MEMRECALL = SDL_SCANCODE_KP_MEMRECALL,
281 KP_MEMCLEAR = SDL_SCANCODE_KP_MEMCLEAR,
282 KP_MEMADD = SDL_SCANCODE_KP_MEMADD,
283 KP_MEMSUBTRACT = SDL_SCANCODE_KP_MEMSUBTRACT,
284 KP_MEMMULTIPLY = SDL_SCANCODE_KP_MEMMULTIPLY,
285 KP_MEMDIVIDE = SDL_SCANCODE_KP_MEMDIVIDE,
286 KP_PLUSMINUS = SDL_SCANCODE_KP_PLUSMINUS,
287 KP_CLEAR = SDL_SCANCODE_KP_CLEAR,
288 KP_CLEARENTRY = SDL_SCANCODE_KP_CLEARENTRY,
289 KP_BINARY = SDL_SCANCODE_KP_BINARY,
290 KP_OCTAL = SDL_SCANCODE_KP_OCTAL,
291 KP_DECIMAL = SDL_SCANCODE_KP_DECIMAL,
292 KP_HEXADECIMAL = SDL_SCANCODE_KP_HEXADECIMAL,
293
294 LCTRL = SDL_SCANCODE_LCTRL,
295 LSHIFT = SDL_SCANCODE_LSHIFT,
296 LALT = SDL_SCANCODE_LALT,
297 LGUI = SDL_SCANCODE_LGUI,
298 RCTRL = SDL_SCANCODE_RCTRL,
299 RSHIFT = SDL_SCANCODE_RSHIFT,
300 RALT = SDL_SCANCODE_RALT,
301 RGUI = SDL_SCANCODE_RGUI,
303 MODE = SDL_SCANCODE_MODE,
308 /* @} */ /* Usage page 0x07 */
309
320 /* @{ */
321
322 AUDIONEXT = SDL_SCANCODE_AUDIONEXT,
323 AUDIOPREV = SDL_SCANCODE_AUDIOPREV,
324 AUDIOSTOP = SDL_SCANCODE_AUDIOSTOP,
325 AUDIOPLAY = SDL_SCANCODE_AUDIOPLAY,
326 AUDIOMUTE = SDL_SCANCODE_AUDIOMUTE,
327 MEDIASELECT = SDL_SCANCODE_MEDIASELECT,
328 WWW = SDL_SCANCODE_WWW,
329 MAIL = SDL_SCANCODE_MAIL,
330 CALCULATOR = SDL_SCANCODE_CALCULATOR,
331 COMPUTER = SDL_SCANCODE_COMPUTER,
332 AC_SEARCH = SDL_SCANCODE_AC_SEARCH,
333 AC_HOME = SDL_SCANCODE_AC_HOME,
334 AC_BACK = SDL_SCANCODE_AC_BACK,
335 AC_FORWARD = SDL_SCANCODE_AC_FORWARD,
336 AC_STOP = SDL_SCANCODE_AC_STOP,
337 AC_REFRESH = SDL_SCANCODE_AC_REFRESH,
338 AC_BOOKMARKS = SDL_SCANCODE_AC_BOOKMARKS,
340 /* @} */ /* Usage page 0x0C */
341
347 /* @{ */
348
349 BRIGHTNESSDOWN = SDL_SCANCODE_BRIGHTNESSDOWN,
350 BRIGHTNESSUP = SDL_SCANCODE_BRIGHTNESSUP,
351 DISPLAYSWITCH = SDL_SCANCODE_DISPLAYSWITCH,
353 KBDILLUMTOGGLE = SDL_SCANCODE_KBDILLUMTOGGLE,
354 KBDILLUMDOWN = SDL_SCANCODE_KBDILLUMDOWN,
355 KBDILLUMUP = SDL_SCANCODE_KBDILLUMUP,
356 EJECT = SDL_SCANCODE_EJECT,
357 SLEEP = SDL_SCANCODE_SLEEP,
359 APP1 = SDL_SCANCODE_APP1,
360 APP2 = SDL_SCANCODE_APP2,
361
362 /* @} */ /* Walther keys */
363
369 /* @{ */
370
371 AUDIOREWIND = SDL_SCANCODE_AUDIOREWIND,
372 AUDIOFASTFORWARD = SDL_SCANCODE_AUDIOFASTFORWARD,
373
374 /* @} */ /* Usage page 0x0C (additional media keys) */
375
381 /* @{ */
382
383 SOFTLEFT =
384 SDL_SCANCODE_SOFTLEFT,
388 SOFTRIGHT =
389 SDL_SCANCODE_SOFTRIGHT,
393 CALL = SDL_SCANCODE_CALL,
394 ENDCALL = SDL_SCANCODE_ENDCALL,
396 /* @} */ /* Mobile keys */
397
398 /* Add any other keys here. */
399
400 NUM_SCANCODES = SDL_NUM_SCANCODES,
404 // Below are the keycodes handling mouse buttons.
405
406 MOUSE_LB = 513,
407 MOUSE_MB = 514,
408 MOUSE_RB = 515,
409};
410// clang-format on
411} // namespace Util
412
413#endif // UTIL_EVENT_STUFF_HPP
Useful tools for development.
Definition: Animation.hpp:12
Keycode
Definition: Keycode.hpp:11