1#ifndef KEYS_H
2#define KEYS_H
3
4#define MG_KEYS_DOWN_MAX 64
5
6/* clang-format off */
7#ifdef MG_PLATFORM_SDL
8#include <SDL2/SDL_keycode.h>
9typedef SDL_Keycode MGKey;
10enum {
11 MGK_UNKNOWN = SDLK_UNKNOWN,
12
13 MGK_A = SDLK_a, MGK_B = SDLK_b, MGK_C = SDLK_c,
14 MGK_D = SDLK_d, MGK_E = SDLK_e, MGK_F = SDLK_f,
15 MGK_G = SDLK_g, MGK_H = SDLK_h, MGK_I = SDLK_i,
16 MGK_J = SDLK_j, MGK_K = SDLK_k, MGK_L = SDLK_l,
17 MGK_M = SDLK_m, MGK_N = SDLK_n, MGK_O = SDLK_o,
18 MGK_P = SDLK_p, MGK_Q = SDLK_q, MGK_R = SDLK_r,
19 MGK_S = SDLK_s, MGK_T = SDLK_t, MGK_U = SDLK_u,
20 MGK_V = SDLK_v, MGK_W = SDLK_w, MGK_X = SDLK_x,
21 MGK_Y = SDLK_y, MGK_Z = SDLK_z,
22
23 MGK_0 = SDLK_0, MGK_1 = SDLK_1, MGK_2 = SDLK_2,
24 MGK_3 = SDLK_3, MGK_4 = SDLK_4, MGK_5 = SDLK_5,
25 MGK_6 = SDLK_6, MGK_7 = SDLK_7, MGK_8 = SDLK_8,
26 MGK_9 = SDLK_9,
27
28 MGK_RETURN = SDLK_RETURN,
29 MGK_ESCAPE = SDLK_ESCAPE,
30 MGK_BACKSPACE = SDLK_BACKSPACE,
31 MGK_TAB = SDLK_TAB,
32 MGK_SPACE = SDLK_SPACE,
33
34 MGK_MINUS = SDLK_MINUS,
35 MGK_EQUALS = SDLK_EQUALS,
36 MGK_LEFTBRACKET = SDLK_LEFTBRACKET,
37 MGK_RIGHTBRACKET = SDLK_RIGHTBRACKET,
38 MGK_BACKSLASH = SDLK_BACKSLASH,
39 MGK_SEMICOLON = SDLK_SEMICOLON,
40 MGK_APOSTROPHE = SDLK_QUOTE,
41 MGK_GRAVE = SDLK_BACKQUOTE,
42 MGK_COMMA = SDLK_COMMA,
43 MGK_PERIOD = SDLK_PERIOD,
44 MGK_SLASH = SDLK_SLASH,
45
46 MGK_CAPSLOCK = SDLK_CAPSLOCK,
47
48 MGK_F1 = SDLK_F1, MGK_F2 = SDLK_F2, MGK_F3 = SDLK_F3,
49 MGK_F4 = SDLK_F4, MGK_F5 = SDLK_F5, MGK_F6 = SDLK_F6,
50 MGK_F7 = SDLK_F7, MGK_F8 = SDLK_F8, MGK_F9 = SDLK_F9,
51 MGK_F10 = SDLK_F10, MGK_F11 = SDLK_F11, MGK_F12 = SDLK_F12,
52
53 MGK_PRINTSCREEN = SDLK_PRINTSCREEN,
54 MGK_SCROLLLOCK = SDLK_SCROLLLOCK,
55 MGK_PAUSE = SDLK_PAUSE,
56 MGK_INSERT = SDLK_INSERT,
57 MGK_HOME = SDLK_HOME,
58 MGK_PAGEUP = SDLK_PAGEUP,
59 MGK_DELETE = SDLK_DELETE,
60 MGK_END = SDLK_END,
61 MGK_PAGEDOWN = SDLK_PAGEDOWN,
62 MGK_RIGHT = SDLK_RIGHT,
63 MGK_LEFT = SDLK_LEFT,
64 MGK_DOWN = SDLK_DOWN,
65 MGK_UP = SDLK_UP,
66
67 MGK_NUMLOCKCLEAR = SDLK_NUMLOCKCLEAR,
68 MGK_KP_DIVIDE = SDLK_KP_DIVIDE,
69 MGK_KP_MULTIPLY = SDLK_KP_MULTIPLY,
70 MGK_KP_MINUS = SDLK_KP_MINUS,
71 MGK_KP_PLUS = SDLK_KP_PLUS,
72 MGK_KP_ENTER = SDLK_KP_ENTER,
73 MGK_KP_0 = SDLK_KP_0,
74 MGK_KP_1 = SDLK_KP_1,
75 MGK_KP_2 = SDLK_KP_2,
76 MGK_KP_3 = SDLK_KP_3,
77 MGK_KP_4 = SDLK_KP_4,
78 MGK_KP_5 = SDLK_KP_5,
79 MGK_KP_6 = SDLK_KP_6,
80 MGK_KP_7 = SDLK_KP_7,
81 MGK_KP_8 = SDLK_KP_8,
82 MGK_KP_9 = SDLK_KP_9,
83 MGK_KP_PERIOD = SDLK_KP_PERIOD,
84
85 MGK_LCTRL = SDLK_LCTRL,
86 MGK_LSHIFT = SDLK_LSHIFT,
87 MGK_LALT = SDLK_LALT,
88 MGK_LGUI = SDLK_LGUI,
89 MGK_RCTRL = SDLK_RCTRL,
90 MGK_RSHIFT = SDLK_RSHIFT,
91 MGK_RALT = SDLK_RALT,
92 MGK_RGUI = SDLK_RGUI
93};
94
95#elif MG_PLATFORM_MAUS
96#include <maus_input.h>
97typedef int MGKey;
98enum {
99 MGK_UNKNOWN = MAUS_KEY_NONE,
100
101 MGK_A = MAUS_KEY_A, MGK_B = MAUS_KEY_B, MGK_C = MAUS_KEY_C,
102 MGK_D = MAUS_KEY_D, MGK_E = MAUS_KEY_E, MGK_F = MAUS_KEY_F,
103 MGK_G = MAUS_KEY_G, MGK_H = MAUS_KEY_H, MGK_I = MAUS_KEY_I,
104 MGK_J = MAUS_KEY_J, MGK_K = MAUS_KEY_K, MGK_L = MAUS_KEY_L,
105 MGK_M = MAUS_KEY_M, MGK_N = MAUS_KEY_N, MGK_O = MAUS_KEY_O,
106 MGK_P = MAUS_KEY_P, MGK_Q = MAUS_KEY_Q, MGK_R = MAUS_KEY_R,
107 MGK_S = MAUS_KEY_S, MGK_T = MAUS_KEY_T, MGK_U = MAUS_KEY_U,
108 MGK_V = MAUS_KEY_V, MGK_W = MAUS_KEY_W, MGK_X = MAUS_KEY_X,
109 MGK_Y = MAUS_KEY_Y, MGK_Z = MAUS_KEY_Z,
110
111 MGK_0 = MAUS_KEY_0, MGK_1 = MAUS_KEY_1, MGK_2 = MAUS_KEY_2,
112 MGK_3 = MAUS_KEY_3, MGK_4 = MAUS_KEY_4, MGK_5 = MAUS_KEY_5,
113 MGK_6 = MAUS_KEY_6, MGK_7 = MAUS_KEY_7, MGK_8 = MAUS_KEY_8,
114 MGK_9 = MAUS_KEY_9,
115
116 MGK_RETURN = MAUS_KEY_ENTER,
117 MGK_ESCAPE = MAUS_KEY_ESCAPE,
118 MGK_BACKSPACE = MAUS_KEY_BACKSPACE,
119 MGK_TAB = MAUS_KEY_TAB,
120 MGK_SPACE = MAUS_KEY_SPACE,
121
122 MGK_MINUS = MAUS_KEY_MINUS,
123 MGK_EQUALS = MAUS_KEY_EQUAL,
124 MGK_LEFTBRACKET = MAUS_KEY_LEFT_BRACKET,
125 MGK_RIGHTBRACKET = MAUS_KEY_RIGHT_BRACKET,
126 MGK_BACKSLASH = MAUS_KEY_BACKSLASH,
127 MGK_SEMICOLON = MAUS_KEY_SEMICOLON,
128 MGK_APOSTROPHE = MAUS_KEY_APOSTROPHE,
129 MGK_GRAVE = MAUS_KEY_GRAVE,
130 MGK_COMMA = MAUS_KEY_COMMA,
131 MGK_PERIOD = MAUS_KEY_PERIOD,
132 MGK_SLASH = MAUS_KEY_SLASH,
133
134 MGK_CAPSLOCK = MAUS_KEY_CAPS_LOCK,
135
136 MGK_F1 = MAUS_KEY_F1, MGK_F2 = MAUS_KEY_F2, MGK_F3 = MAUS_KEY_F3,
137 MGK_F4 = MAUS_KEY_F4, MGK_F5 = MAUS_KEY_F5, MGK_F6 = MAUS_KEY_F6,
138 MGK_F7 = MAUS_KEY_F7, MGK_F8 = MAUS_KEY_F8, MGK_F9 = MAUS_KEY_F9,
139 MGK_F10 = MAUS_KEY_F10, MGK_F11 = MAUS_KEY_F11, MGK_F12 = MAUS_KEY_F12,
140
141 MGK_PRINTSCREEN = MAUS_KEY_PRINT_SCREEN,
142 MGK_SCROLLLOCK = MAUS_KEY_SCROLL_LOCK,
143 MGK_PAUSE = MAUS_KEY_PAUSE,
144 MGK_INSERT = MAUS_KEY_INSERT,
145 MGK_HOME = MAUS_KEY_HOME,
146 MGK_PAGEUP = MAUS_KEY_PAGE_UP,
147 MGK_DELETE = MAUS_KEY_DELETE,
148 MGK_END = MAUS_KEY_END,
149 MGK_PAGEDOWN = MAUS_KEY_PAGE_DOWN,
150 MGK_RIGHT = MAUS_KEY_RIGHT,
151 MGK_LEFT = MAUS_KEY_LEFT,
152 MGK_DOWN = MAUS_KEY_DOWN,
153 MGK_UP = MAUS_KEY_UP,
154
155 MGK_NUMLOCKCLEAR = MAUS_KEY_NUM_LOCK,
156 MGK_KP_DIVIDE = MAUS_KEY_KP_DIVIDE,
157 MGK_KP_MULTIPLY = MAUS_KEY_KP_MULTIPLY,
158 MGK_KP_MINUS = MAUS_KEY_KP_SUBTRACT,
159 MGK_KP_PLUS = MAUS_KEY_KP_ADD,
160 MGK_KP_ENTER = MAUS_KEY_KP_ENTER,
161 MGK_KP_0 = MAUS_KEY_KP_0,
162 MGK_KP_1 = MAUS_KEY_KP_1,
163 MGK_KP_2 = MAUS_KEY_KP_2,
164 MGK_KP_3 = MAUS_KEY_KP_3,
165 MGK_KP_4 = MAUS_KEY_KP_4,
166 MGK_KP_5 = MAUS_KEY_KP_5,
167 MGK_KP_6 = MAUS_KEY_KP_6,
168 MGK_KP_7 = MAUS_KEY_KP_7,
169 MGK_KP_8 = MAUS_KEY_KP_8,
170 MGK_KP_9 = MAUS_KEY_KP_9,
171 MGK_KP_PERIOD = MAUS_KEY_KP_DECIMAL,
172
173 MGK_LCTRL = MAUS_KEY_CONTROL_L,
174 MGK_LSHIFT = MAUS_KEY_SHIFT_L,
175 MGK_LALT = MAUS_KEY_ALT_L,
176 MGK_LGUI = MAUS_KEY_SUPER_L,
177 MGK_RCTRL = MAUS_KEY_CONTROL_R,
178 MGK_RSHIFT = MAUS_KEY_SHIFT_R,
179 MGK_RALT = MAUS_KEY_ALT_R,
180 MGK_RGUI = MAUS_KEY_SUPER_R
181};
182#endif
183/* clang-format on */
184
185#endif /* KEYS_H */