|
1
|
1 /*
|
|
|
2 Simple DirectMedia Layer
|
|
|
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
|
|
4
|
|
|
5 This software is provided 'as-is', without any express or implied
|
|
|
6 warranty. In no event will the authors be held liable for any damages
|
|
|
7 arising from the use of this software.
|
|
|
8
|
|
|
9 Permission is granted to anyone to use this software for any purpose,
|
|
|
10 including commercial applications, and to alter it and redistribute it
|
|
|
11 freely, subject to the following restrictions:
|
|
|
12
|
|
|
13 1. The origin of this software must not be misrepresented; you must not
|
|
|
14 claim that you wrote the original software. If you use this software
|
|
|
15 in a product, an acknowledgment in the product documentation would be
|
|
|
16 appreciated but is not required.
|
|
|
17 2. Altered source versions must be plainly marked as such, and must not be
|
|
|
18 misrepresented as being the original software.
|
|
|
19 3. This notice may not be removed or altered from any source distribution.
|
|
|
20 */
|
|
|
21
|
|
|
22 /**
|
|
|
23 * # CategoryKeycode
|
|
|
24 *
|
|
|
25 * Defines constants which identify keyboard keys and modifiers.
|
|
|
26 *
|
|
|
27 * Please refer to the Best Keyboard Practices document for details on what
|
|
|
28 * this information means and how best to use it.
|
|
|
29 *
|
|
|
30 * https://wiki.libsdl.org/SDL3/BestKeyboardPractices
|
|
|
31 */
|
|
|
32
|
|
|
33 #ifndef SDL_keycode_h_
|
|
|
34 #define SDL_keycode_h_
|
|
|
35
|
|
|
36 #include <SDL3/SDL_stdinc.h>
|
|
|
37 #include <SDL3/SDL_scancode.h>
|
|
|
38
|
|
|
39 /**
|
|
|
40 * The SDL virtual key representation.
|
|
|
41 *
|
|
|
42 * Values of this type are used to represent keyboard keys using the current
|
|
|
43 * layout of the keyboard. These values include Unicode values representing
|
|
|
44 * the unmodified character that would be generated by pressing the key, or an
|
|
|
45 * `SDLK_*` constant for those keys that do not generate characters.
|
|
|
46 *
|
|
|
47 * A special exception is the number keys at the top of the keyboard which map
|
|
|
48 * by default to SDLK_0...SDLK_9 on AZERTY layouts.
|
|
|
49 *
|
|
|
50 * Keys with the `SDLK_EXTENDED_MASK` bit set do not map to a scancode or
|
|
|
51 * Unicode code point.
|
|
|
52 *
|
|
|
53 * Many common keycodes are listed below, but this list is not exhaustive.
|
|
|
54 *
|
|
|
55 * \since This datatype is available since SDL 3.2.0.
|
|
|
56 *
|
|
|
57 * \sa SDL_HINT_KEYCODE_OPTIONS
|
|
|
58 */
|
|
|
59 typedef Uint32 SDL_Keycode;
|
|
|
60
|
|
|
61 #define SDLK_EXTENDED_MASK (1u << 29)
|
|
|
62 #define SDLK_SCANCODE_MASK (1u << 30)
|
|
|
63 #define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)
|
|
|
64 #define SDLK_UNKNOWN 0x00000000u /**< 0 */
|
|
|
65 #define SDLK_RETURN 0x0000000du /**< '\r' */
|
|
|
66 #define SDLK_ESCAPE 0x0000001bu /**< '\x1B' */
|
|
|
67 #define SDLK_BACKSPACE 0x00000008u /**< '\b' */
|
|
|
68 #define SDLK_TAB 0x00000009u /**< '\t' */
|
|
|
69 #define SDLK_SPACE 0x00000020u /**< ' ' */
|
|
|
70 #define SDLK_EXCLAIM 0x00000021u /**< '!' */
|
|
|
71 #define SDLK_DBLAPOSTROPHE 0x00000022u /**< '"' */
|
|
|
72 #define SDLK_HASH 0x00000023u /**< '#' */
|
|
|
73 #define SDLK_DOLLAR 0x00000024u /**< '$' */
|
|
|
74 #define SDLK_PERCENT 0x00000025u /**< '%' */
|
|
|
75 #define SDLK_AMPERSAND 0x00000026u /**< '&' */
|
|
|
76 #define SDLK_APOSTROPHE 0x00000027u /**< '\'' */
|
|
|
77 #define SDLK_LEFTPAREN 0x00000028u /**< '(' */
|
|
|
78 #define SDLK_RIGHTPAREN 0x00000029u /**< ')' */
|
|
|
79 #define SDLK_ASTERISK 0x0000002au /**< '*' */
|
|
|
80 #define SDLK_PLUS 0x0000002bu /**< '+' */
|
|
|
81 #define SDLK_COMMA 0x0000002cu /**< ',' */
|
|
|
82 #define SDLK_MINUS 0x0000002du /**< '-' */
|
|
|
83 #define SDLK_PERIOD 0x0000002eu /**< '.' */
|
|
|
84 #define SDLK_SLASH 0x0000002fu /**< '/' */
|
|
|
85 #define SDLK_0 0x00000030u /**< '0' */
|
|
|
86 #define SDLK_1 0x00000031u /**< '1' */
|
|
|
87 #define SDLK_2 0x00000032u /**< '2' */
|
|
|
88 #define SDLK_3 0x00000033u /**< '3' */
|
|
|
89 #define SDLK_4 0x00000034u /**< '4' */
|
|
|
90 #define SDLK_5 0x00000035u /**< '5' */
|
|
|
91 #define SDLK_6 0x00000036u /**< '6' */
|
|
|
92 #define SDLK_7 0x00000037u /**< '7' */
|
|
|
93 #define SDLK_8 0x00000038u /**< '8' */
|
|
|
94 #define SDLK_9 0x00000039u /**< '9' */
|
|
|
95 #define SDLK_COLON 0x0000003au /**< ':' */
|
|
|
96 #define SDLK_SEMICOLON 0x0000003bu /**< ';' */
|
|
|
97 #define SDLK_LESS 0x0000003cu /**< '<' */
|
|
|
98 #define SDLK_EQUALS 0x0000003du /**< '=' */
|
|
|
99 #define SDLK_GREATER 0x0000003eu /**< '>' */
|
|
|
100 #define SDLK_QUESTION 0x0000003fu /**< '?' */
|
|
|
101 #define SDLK_AT 0x00000040u /**< '@' */
|
|
|
102 #define SDLK_LEFTBRACKET 0x0000005bu /**< '[' */
|
|
|
103 #define SDLK_BACKSLASH 0x0000005cu /**< '\\' */
|
|
|
104 #define SDLK_RIGHTBRACKET 0x0000005du /**< ']' */
|
|
|
105 #define SDLK_CARET 0x0000005eu /**< '^' */
|
|
|
106 #define SDLK_UNDERSCORE 0x0000005fu /**< '_' */
|
|
|
107 #define SDLK_GRAVE 0x00000060u /**< '`' */
|
|
|
108 #define SDLK_A 0x00000061u /**< 'a' */
|
|
|
109 #define SDLK_B 0x00000062u /**< 'b' */
|
|
|
110 #define SDLK_C 0x00000063u /**< 'c' */
|
|
|
111 #define SDLK_D 0x00000064u /**< 'd' */
|
|
|
112 #define SDLK_E 0x00000065u /**< 'e' */
|
|
|
113 #define SDLK_F 0x00000066u /**< 'f' */
|
|
|
114 #define SDLK_G 0x00000067u /**< 'g' */
|
|
|
115 #define SDLK_H 0x00000068u /**< 'h' */
|
|
|
116 #define SDLK_I 0x00000069u /**< 'i' */
|
|
|
117 #define SDLK_J 0x0000006au /**< 'j' */
|
|
|
118 #define SDLK_K 0x0000006bu /**< 'k' */
|
|
|
119 #define SDLK_L 0x0000006cu /**< 'l' */
|
|
|
120 #define SDLK_M 0x0000006du /**< 'm' */
|
|
|
121 #define SDLK_N 0x0000006eu /**< 'n' */
|
|
|
122 #define SDLK_O 0x0000006fu /**< 'o' */
|
|
|
123 #define SDLK_P 0x00000070u /**< 'p' */
|
|
|
124 #define SDLK_Q 0x00000071u /**< 'q' */
|
|
|
125 #define SDLK_R 0x00000072u /**< 'r' */
|
|
|
126 #define SDLK_S 0x00000073u /**< 's' */
|
|
|
127 #define SDLK_T 0x00000074u /**< 't' */
|
|
|
128 #define SDLK_U 0x00000075u /**< 'u' */
|
|
|
129 #define SDLK_V 0x00000076u /**< 'v' */
|
|
|
130 #define SDLK_W 0x00000077u /**< 'w' */
|
|
|
131 #define SDLK_X 0x00000078u /**< 'x' */
|
|
|
132 #define SDLK_Y 0x00000079u /**< 'y' */
|
|
|
133 #define SDLK_Z 0x0000007au /**< 'z' */
|
|
|
134 #define SDLK_LEFTBRACE 0x0000007bu /**< '{' */
|
|
|
135 #define SDLK_PIPE 0x0000007cu /**< '|' */
|
|
|
136 #define SDLK_RIGHTBRACE 0x0000007du /**< '}' */
|
|
|
137 #define SDLK_TILDE 0x0000007eu /**< '~' */
|
|
|
138 #define SDLK_DELETE 0x0000007fu /**< '\x7F' */
|
|
|
139 #define SDLK_PLUSMINUS 0x000000b1u /**< '\xB1' */
|
|
|
140 #define SDLK_CAPSLOCK 0x40000039u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK) */
|
|
|
141 #define SDLK_F1 0x4000003au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1) */
|
|
|
142 #define SDLK_F2 0x4000003bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2) */
|
|
|
143 #define SDLK_F3 0x4000003cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3) */
|
|
|
144 #define SDLK_F4 0x4000003du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4) */
|
|
|
145 #define SDLK_F5 0x4000003eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5) */
|
|
|
146 #define SDLK_F6 0x4000003fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6) */
|
|
|
147 #define SDLK_F7 0x40000040u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7) */
|
|
|
148 #define SDLK_F8 0x40000041u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8) */
|
|
|
149 #define SDLK_F9 0x40000042u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9) */
|
|
|
150 #define SDLK_F10 0x40000043u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10) */
|
|
|
151 #define SDLK_F11 0x40000044u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11) */
|
|
|
152 #define SDLK_F12 0x40000045u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12) */
|
|
|
153 #define SDLK_PRINTSCREEN 0x40000046u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN) */
|
|
|
154 #define SDLK_SCROLLLOCK 0x40000047u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK) */
|
|
|
155 #define SDLK_PAUSE 0x40000048u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE) */
|
|
|
156 #define SDLK_INSERT 0x40000049u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT) */
|
|
|
157 #define SDLK_HOME 0x4000004au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME) */
|
|
|
158 #define SDLK_PAGEUP 0x4000004bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP) */
|
|
|
159 #define SDLK_END 0x4000004du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END) */
|
|
|
160 #define SDLK_PAGEDOWN 0x4000004eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN) */
|
|
|
161 #define SDLK_RIGHT 0x4000004fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT) */
|
|
|
162 #define SDLK_LEFT 0x40000050u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT) */
|
|
|
163 #define SDLK_DOWN 0x40000051u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN) */
|
|
|
164 #define SDLK_UP 0x40000052u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP) */
|
|
|
165 #define SDLK_NUMLOCKCLEAR 0x40000053u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR) */
|
|
|
166 #define SDLK_KP_DIVIDE 0x40000054u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE) */
|
|
|
167 #define SDLK_KP_MULTIPLY 0x40000055u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY) */
|
|
|
168 #define SDLK_KP_MINUS 0x40000056u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS) */
|
|
|
169 #define SDLK_KP_PLUS 0x40000057u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS) */
|
|
|
170 #define SDLK_KP_ENTER 0x40000058u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER) */
|
|
|
171 #define SDLK_KP_1 0x40000059u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1) */
|
|
|
172 #define SDLK_KP_2 0x4000005au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2) */
|
|
|
173 #define SDLK_KP_3 0x4000005bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3) */
|
|
|
174 #define SDLK_KP_4 0x4000005cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4) */
|
|
|
175 #define SDLK_KP_5 0x4000005du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5) */
|
|
|
176 #define SDLK_KP_6 0x4000005eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6) */
|
|
|
177 #define SDLK_KP_7 0x4000005fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7) */
|
|
|
178 #define SDLK_KP_8 0x40000060u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8) */
|
|
|
179 #define SDLK_KP_9 0x40000061u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9) */
|
|
|
180 #define SDLK_KP_0 0x40000062u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0) */
|
|
|
181 #define SDLK_KP_PERIOD 0x40000063u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD) */
|
|
|
182 #define SDLK_APPLICATION 0x40000065u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION) */
|
|
|
183 #define SDLK_POWER 0x40000066u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER) */
|
|
|
184 #define SDLK_KP_EQUALS 0x40000067u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS) */
|
|
|
185 #define SDLK_F13 0x40000068u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13) */
|
|
|
186 #define SDLK_F14 0x40000069u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14) */
|
|
|
187 #define SDLK_F15 0x4000006au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15) */
|
|
|
188 #define SDLK_F16 0x4000006bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16) */
|
|
|
189 #define SDLK_F17 0x4000006cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17) */
|
|
|
190 #define SDLK_F18 0x4000006du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18) */
|
|
|
191 #define SDLK_F19 0x4000006eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19) */
|
|
|
192 #define SDLK_F20 0x4000006fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20) */
|
|
|
193 #define SDLK_F21 0x40000070u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21) */
|
|
|
194 #define SDLK_F22 0x40000071u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22) */
|
|
|
195 #define SDLK_F23 0x40000072u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23) */
|
|
|
196 #define SDLK_F24 0x40000073u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24) */
|
|
|
197 #define SDLK_EXECUTE 0x40000074u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE) */
|
|
|
198 #define SDLK_HELP 0x40000075u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP) */
|
|
|
199 #define SDLK_MENU 0x40000076u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU) */
|
|
|
200 #define SDLK_SELECT 0x40000077u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT) */
|
|
|
201 #define SDLK_STOP 0x40000078u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP) */
|
|
|
202 #define SDLK_AGAIN 0x40000079u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN) */
|
|
|
203 #define SDLK_UNDO 0x4000007au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO) */
|
|
|
204 #define SDLK_CUT 0x4000007bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT) */
|
|
|
205 #define SDLK_COPY 0x4000007cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY) */
|
|
|
206 #define SDLK_PASTE 0x4000007du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE) */
|
|
|
207 #define SDLK_FIND 0x4000007eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND) */
|
|
|
208 #define SDLK_MUTE 0x4000007fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE) */
|
|
|
209 #define SDLK_VOLUMEUP 0x40000080u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP) */
|
|
|
210 #define SDLK_VOLUMEDOWN 0x40000081u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN) */
|
|
|
211 #define SDLK_KP_COMMA 0x40000085u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA) */
|
|
|
212 #define SDLK_KP_EQUALSAS400 0x40000086u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400) */
|
|
|
213 #define SDLK_ALTERASE 0x40000099u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE) */
|
|
|
214 #define SDLK_SYSREQ 0x4000009au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ) */
|
|
|
215 #define SDLK_CANCEL 0x4000009bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL) */
|
|
|
216 #define SDLK_CLEAR 0x4000009cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR) */
|
|
|
217 #define SDLK_PRIOR 0x4000009du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR) */
|
|
|
218 #define SDLK_RETURN2 0x4000009eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2) */
|
|
|
219 #define SDLK_SEPARATOR 0x4000009fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR) */
|
|
|
220 #define SDLK_OUT 0x400000a0u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT) */
|
|
|
221 #define SDLK_OPER 0x400000a1u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER) */
|
|
|
222 #define SDLK_CLEARAGAIN 0x400000a2u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN) */
|
|
|
223 #define SDLK_CRSEL 0x400000a3u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL) */
|
|
|
224 #define SDLK_EXSEL 0x400000a4u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL) */
|
|
|
225 #define SDLK_KP_00 0x400000b0u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00) */
|
|
|
226 #define SDLK_KP_000 0x400000b1u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000) */
|
|
|
227 #define SDLK_THOUSANDSSEPARATOR 0x400000b2u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR) */
|
|
|
228 #define SDLK_DECIMALSEPARATOR 0x400000b3u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR) */
|
|
|
229 #define SDLK_CURRENCYUNIT 0x400000b4u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT) */
|
|
|
230 #define SDLK_CURRENCYSUBUNIT 0x400000b5u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT) */
|
|
|
231 #define SDLK_KP_LEFTPAREN 0x400000b6u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN) */
|
|
|
232 #define SDLK_KP_RIGHTPAREN 0x400000b7u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN) */
|
|
|
233 #define SDLK_KP_LEFTBRACE 0x400000b8u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE) */
|
|
|
234 #define SDLK_KP_RIGHTBRACE 0x400000b9u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE) */
|
|
|
235 #define SDLK_KP_TAB 0x400000bau /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB) */
|
|
|
236 #define SDLK_KP_BACKSPACE 0x400000bbu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE) */
|
|
|
237 #define SDLK_KP_A 0x400000bcu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A) */
|
|
|
238 #define SDLK_KP_B 0x400000bdu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B) */
|
|
|
239 #define SDLK_KP_C 0x400000beu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C) */
|
|
|
240 #define SDLK_KP_D 0x400000bfu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D) */
|
|
|
241 #define SDLK_KP_E 0x400000c0u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E) */
|
|
|
242 #define SDLK_KP_F 0x400000c1u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F) */
|
|
|
243 #define SDLK_KP_XOR 0x400000c2u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR) */
|
|
|
244 #define SDLK_KP_POWER 0x400000c3u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER) */
|
|
|
245 #define SDLK_KP_PERCENT 0x400000c4u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT) */
|
|
|
246 #define SDLK_KP_LESS 0x400000c5u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS) */
|
|
|
247 #define SDLK_KP_GREATER 0x400000c6u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER) */
|
|
|
248 #define SDLK_KP_AMPERSAND 0x400000c7u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND) */
|
|
|
249 #define SDLK_KP_DBLAMPERSAND 0x400000c8u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND) */
|
|
|
250 #define SDLK_KP_VERTICALBAR 0x400000c9u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR) */
|
|
|
251 #define SDLK_KP_DBLVERTICALBAR 0x400000cau /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR) */
|
|
|
252 #define SDLK_KP_COLON 0x400000cbu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON) */
|
|
|
253 #define SDLK_KP_HASH 0x400000ccu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH) */
|
|
|
254 #define SDLK_KP_SPACE 0x400000cdu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE) */
|
|
|
255 #define SDLK_KP_AT 0x400000ceu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT) */
|
|
|
256 #define SDLK_KP_EXCLAM 0x400000cfu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM) */
|
|
|
257 #define SDLK_KP_MEMSTORE 0x400000d0u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE) */
|
|
|
258 #define SDLK_KP_MEMRECALL 0x400000d1u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL) */
|
|
|
259 #define SDLK_KP_MEMCLEAR 0x400000d2u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR) */
|
|
|
260 #define SDLK_KP_MEMADD 0x400000d3u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD) */
|
|
|
261 #define SDLK_KP_MEMSUBTRACT 0x400000d4u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT) */
|
|
|
262 #define SDLK_KP_MEMMULTIPLY 0x400000d5u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY) */
|
|
|
263 #define SDLK_KP_MEMDIVIDE 0x400000d6u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE) */
|
|
|
264 #define SDLK_KP_PLUSMINUS 0x400000d7u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS) */
|
|
|
265 #define SDLK_KP_CLEAR 0x400000d8u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR) */
|
|
|
266 #define SDLK_KP_CLEARENTRY 0x400000d9u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY) */
|
|
|
267 #define SDLK_KP_BINARY 0x400000dau /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY) */
|
|
|
268 #define SDLK_KP_OCTAL 0x400000dbu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL) */
|
|
|
269 #define SDLK_KP_DECIMAL 0x400000dcu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL) */
|
|
|
270 #define SDLK_KP_HEXADECIMAL 0x400000ddu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL) */
|
|
|
271 #define SDLK_LCTRL 0x400000e0u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL) */
|
|
|
272 #define SDLK_LSHIFT 0x400000e1u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT) */
|
|
|
273 #define SDLK_LALT 0x400000e2u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT) */
|
|
|
274 #define SDLK_LGUI 0x400000e3u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI) */
|
|
|
275 #define SDLK_RCTRL 0x400000e4u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL) */
|
|
|
276 #define SDLK_RSHIFT 0x400000e5u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT) */
|
|
|
277 #define SDLK_RALT 0x400000e6u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT) */
|
|
|
278 #define SDLK_RGUI 0x400000e7u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI) */
|
|
|
279 #define SDLK_MODE 0x40000101u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE) */
|
|
|
280 #define SDLK_SLEEP 0x40000102u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP) */
|
|
|
281 #define SDLK_WAKE 0x40000103u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WAKE) */
|
|
|
282 #define SDLK_CHANNEL_INCREMENT 0x40000104u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CHANNEL_INCREMENT) */
|
|
|
283 #define SDLK_CHANNEL_DECREMENT 0x40000105u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CHANNEL_DECREMENT) */
|
|
|
284 #define SDLK_MEDIA_PLAY 0x40000106u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_PLAY) */
|
|
|
285 #define SDLK_MEDIA_PAUSE 0x40000107u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_PAUSE) */
|
|
|
286 #define SDLK_MEDIA_RECORD 0x40000108u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_RECORD) */
|
|
|
287 #define SDLK_MEDIA_FAST_FORWARD 0x40000109u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_FAST_FORWARD) */
|
|
|
288 #define SDLK_MEDIA_REWIND 0x4000010au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_REWIND) */
|
|
|
289 #define SDLK_MEDIA_NEXT_TRACK 0x4000010bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_NEXT_TRACK) */
|
|
|
290 #define SDLK_MEDIA_PREVIOUS_TRACK 0x4000010cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_PREVIOUS_TRACK) */
|
|
|
291 #define SDLK_MEDIA_STOP 0x4000010du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_STOP) */
|
|
|
292 #define SDLK_MEDIA_EJECT 0x4000010eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_EJECT) */
|
|
|
293 #define SDLK_MEDIA_PLAY_PAUSE 0x4000010fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_PLAY_PAUSE) */
|
|
|
294 #define SDLK_MEDIA_SELECT 0x40000110u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIA_SELECT) */
|
|
|
295 #define SDLK_AC_NEW 0x40000111u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_NEW) */
|
|
|
296 #define SDLK_AC_OPEN 0x40000112u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_OPEN) */
|
|
|
297 #define SDLK_AC_CLOSE 0x40000113u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_CLOSE) */
|
|
|
298 #define SDLK_AC_EXIT 0x40000114u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_EXIT) */
|
|
|
299 #define SDLK_AC_SAVE 0x40000115u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SAVE) */
|
|
|
300 #define SDLK_AC_PRINT 0x40000116u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_PRINT) */
|
|
|
301 #define SDLK_AC_PROPERTIES 0x40000117u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_PROPERTIES) */
|
|
|
302 #define SDLK_AC_SEARCH 0x40000118u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH) */
|
|
|
303 #define SDLK_AC_HOME 0x40000119u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME) */
|
|
|
304 #define SDLK_AC_BACK 0x4000011au /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK) */
|
|
|
305 #define SDLK_AC_FORWARD 0x4000011bu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD) */
|
|
|
306 #define SDLK_AC_STOP 0x4000011cu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP) */
|
|
|
307 #define SDLK_AC_REFRESH 0x4000011du /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH) */
|
|
|
308 #define SDLK_AC_BOOKMARKS 0x4000011eu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS) */
|
|
|
309 #define SDLK_SOFTLEFT 0x4000011fu /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT) */
|
|
|
310 #define SDLK_SOFTRIGHT 0x40000120u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT) */
|
|
|
311 #define SDLK_CALL 0x40000121u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL) */
|
|
|
312 #define SDLK_ENDCALL 0x40000122u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL) */
|
|
|
313 #define SDLK_LEFT_TAB 0x20000001u /**< Extended key Left Tab */
|
|
|
314 #define SDLK_LEVEL5_SHIFT 0x20000002u /**< Extended key Level 5 Shift */
|
|
|
315 #define SDLK_MULTI_KEY_COMPOSE 0x20000003u /**< Extended key Multi-key Compose */
|
|
|
316 #define SDLK_LMETA 0x20000004u /**< Extended key Left Meta */
|
|
|
317 #define SDLK_RMETA 0x20000005u /**< Extended key Right Meta */
|
|
|
318 #define SDLK_LHYPER 0x20000006u /**< Extended key Left Hyper */
|
|
|
319 #define SDLK_RHYPER 0x20000007u /**< Extended key Right Hyper */
|
|
|
320
|
|
|
321 /**
|
|
|
322 * Valid key modifiers (possibly OR'd together).
|
|
|
323 *
|
|
|
324 * \since This datatype is available since SDL 3.2.0.
|
|
|
325 */
|
|
|
326 typedef Uint16 SDL_Keymod;
|
|
|
327
|
|
|
328 #define SDL_KMOD_NONE 0x0000u /**< no modifier is applicable. */
|
|
|
329 #define SDL_KMOD_LSHIFT 0x0001u /**< the left Shift key is down. */
|
|
|
330 #define SDL_KMOD_RSHIFT 0x0002u /**< the right Shift key is down. */
|
|
|
331 #define SDL_KMOD_LEVEL5 0x0004u /**< the Level 5 Shift key is down. */
|
|
|
332 #define SDL_KMOD_LCTRL 0x0040u /**< the left Ctrl (Control) key is down. */
|
|
|
333 #define SDL_KMOD_RCTRL 0x0080u /**< the right Ctrl (Control) key is down. */
|
|
|
334 #define SDL_KMOD_LALT 0x0100u /**< the left Alt key is down. */
|
|
|
335 #define SDL_KMOD_RALT 0x0200u /**< the right Alt key is down. */
|
|
|
336 #define SDL_KMOD_LGUI 0x0400u /**< the left GUI key (often the Windows key) is down. */
|
|
|
337 #define SDL_KMOD_RGUI 0x0800u /**< the right GUI key (often the Windows key) is down. */
|
|
|
338 #define SDL_KMOD_NUM 0x1000u /**< the Num Lock key (may be located on an extended keypad) is down. */
|
|
|
339 #define SDL_KMOD_CAPS 0x2000u /**< the Caps Lock key is down. */
|
|
|
340 #define SDL_KMOD_MODE 0x4000u /**< the !AltGr key is down. */
|
|
|
341 #define SDL_KMOD_SCROLL 0x8000u /**< the Scroll Lock key is down. */
|
|
|
342 #define SDL_KMOD_CTRL (SDL_KMOD_LCTRL | SDL_KMOD_RCTRL) /**< Any Ctrl key is down. */
|
|
|
343 #define SDL_KMOD_SHIFT (SDL_KMOD_LSHIFT | SDL_KMOD_RSHIFT) /**< Any Shift key is down. */
|
|
|
344 #define SDL_KMOD_ALT (SDL_KMOD_LALT | SDL_KMOD_RALT) /**< Any Alt key is down. */
|
|
|
345 #define SDL_KMOD_GUI (SDL_KMOD_LGUI | SDL_KMOD_RGUI) /**< Any GUI key is down. */
|
|
|
346
|
|
|
347 #endif /* SDL_keycode_h_ */
|