sdl3_sys/generated/
keycode.rs

1//! Defines constants which identify keyboard keys and modifiers.
2//!
3//! Please refer to the Best Keyboard Practices document for details on what
4//! this information means and how best to use it.
5//!
6//! <https://wiki.libsdl.org/SDL3/BestKeyboardPractices>
7
8use super::stdinc::*;
9
10use super::scancode::*;
11
12/// The SDL virtual key representation.
13///
14/// Values of this type are used to represent keyboard keys using the current
15/// layout of the keyboard. These values include Unicode values representing
16/// the unmodified character that would be generated by pressing the key, or an
17/// `SDLK_*` constant for those keys that do not generate characters.
18///
19/// A special exception is the number keys at the top of the keyboard which map
20/// by default to SDLK_0...SDLK_9 on AZERTY layouts.
21///
22/// Keys with the `SDLK_EXTENDED_MASK` bit set do not map to a scancode or
23/// Unicode code point.
24///
25/// Many common keycodes are listed below, but this list is not exhaustive.
26///
27/// ## Availability
28/// This datatype is available since SDL 3.2.0.
29///
30/// ## See also
31/// - [`SDL_HINT_KEYCODE_OPTIONS`]
32///
33/// ## Known values (`sdl3-sys`)
34/// | Associated constant | Global constant | Description |
35/// | ------------------- | --------------- | ----------- |
36/// | [`EXTENDED_MASK`](SDL_Keycode::EXTENDED_MASK) | [`SDLK_EXTENDED_MASK`] | |
37/// | [`SCANCODE_MASK`](SDL_Keycode::SCANCODE_MASK) | [`SDLK_SCANCODE_MASK`] | |
38/// | [`UNKNOWN`](SDL_Keycode::UNKNOWN) | [`SDLK_UNKNOWN`] | 0 |
39/// | [`RETURN`](SDL_Keycode::RETURN) | [`SDLK_RETURN`] | '\r' |
40/// | [`ESCAPE`](SDL_Keycode::ESCAPE) | [`SDLK_ESCAPE`] | '\x1B' |
41/// | [`BACKSPACE`](SDL_Keycode::BACKSPACE) | [`SDLK_BACKSPACE`] | '\b' |
42/// | [`TAB`](SDL_Keycode::TAB) | [`SDLK_TAB`] | '\t' |
43/// | [`SPACE`](SDL_Keycode::SPACE) | [`SDLK_SPACE`] | ' ' |
44/// | [`EXCLAIM`](SDL_Keycode::EXCLAIM) | [`SDLK_EXCLAIM`] | '!' |
45/// | [`DBLAPOSTROPHE`](SDL_Keycode::DBLAPOSTROPHE) | [`SDLK_DBLAPOSTROPHE`] | '"' |
46/// | [`HASH`](SDL_Keycode::HASH) | [`SDLK_HASH`] | '#' |
47/// | [`DOLLAR`](SDL_Keycode::DOLLAR) | [`SDLK_DOLLAR`] | '$' |
48/// | [`PERCENT`](SDL_Keycode::PERCENT) | [`SDLK_PERCENT`] | '%' |
49/// | [`AMPERSAND`](SDL_Keycode::AMPERSAND) | [`SDLK_AMPERSAND`] | '&' |
50/// | [`APOSTROPHE`](SDL_Keycode::APOSTROPHE) | [`SDLK_APOSTROPHE`] | '\'' |
51/// | [`LEFTPAREN`](SDL_Keycode::LEFTPAREN) | [`SDLK_LEFTPAREN`] | '(' |
52/// | [`RIGHTPAREN`](SDL_Keycode::RIGHTPAREN) | [`SDLK_RIGHTPAREN`] | ')' |
53/// | [`ASTERISK`](SDL_Keycode::ASTERISK) | [`SDLK_ASTERISK`] | '*' |
54/// | [`PLUS`](SDL_Keycode::PLUS) | [`SDLK_PLUS`] | '+' |
55/// | [`COMMA`](SDL_Keycode::COMMA) | [`SDLK_COMMA`] | ',' |
56/// | [`MINUS`](SDL_Keycode::MINUS) | [`SDLK_MINUS`] | '-' |
57/// | [`PERIOD`](SDL_Keycode::PERIOD) | [`SDLK_PERIOD`] | '.' |
58/// | [`SLASH`](SDL_Keycode::SLASH) | [`SDLK_SLASH`] | '/' |
59/// | [`_0`](SDL_Keycode::_0) | [`SDLK_0`] | '0' |
60/// | [`_1`](SDL_Keycode::_1) | [`SDLK_1`] | '1' |
61/// | [`_2`](SDL_Keycode::_2) | [`SDLK_2`] | '2' |
62/// | [`_3`](SDL_Keycode::_3) | [`SDLK_3`] | '3' |
63/// | [`_4`](SDL_Keycode::_4) | [`SDLK_4`] | '4' |
64/// | [`_5`](SDL_Keycode::_5) | [`SDLK_5`] | '5' |
65/// | [`_6`](SDL_Keycode::_6) | [`SDLK_6`] | '6' |
66/// | [`_7`](SDL_Keycode::_7) | [`SDLK_7`] | '7' |
67/// | [`_8`](SDL_Keycode::_8) | [`SDLK_8`] | '8' |
68/// | [`_9`](SDL_Keycode::_9) | [`SDLK_9`] | '9' |
69/// | [`COLON`](SDL_Keycode::COLON) | [`SDLK_COLON`] | ':' |
70/// | [`SEMICOLON`](SDL_Keycode::SEMICOLON) | [`SDLK_SEMICOLON`] | ';' |
71/// | [`LESS`](SDL_Keycode::LESS) | [`SDLK_LESS`] | '<' |
72/// | [`EQUALS`](SDL_Keycode::EQUALS) | [`SDLK_EQUALS`] | '=' |
73/// | [`GREATER`](SDL_Keycode::GREATER) | [`SDLK_GREATER`] | '>' |
74/// | [`QUESTION`](SDL_Keycode::QUESTION) | [`SDLK_QUESTION`] | '?' |
75/// | [`AT`](SDL_Keycode::AT) | [`SDLK_AT`] | '@' |
76/// | [`LEFTBRACKET`](SDL_Keycode::LEFTBRACKET) | [`SDLK_LEFTBRACKET`] | '[' |
77/// | [`BACKSLASH`](SDL_Keycode::BACKSLASH) | [`SDLK_BACKSLASH`] | '\\' |
78/// | [`RIGHTBRACKET`](SDL_Keycode::RIGHTBRACKET) | [`SDLK_RIGHTBRACKET`] | ']' |
79/// | [`CARET`](SDL_Keycode::CARET) | [`SDLK_CARET`] | '^' |
80/// | [`UNDERSCORE`](SDL_Keycode::UNDERSCORE) | [`SDLK_UNDERSCORE`] | '_' |
81/// | [`GRAVE`](SDL_Keycode::GRAVE) | [`SDLK_GRAVE`] | '`' |
82/// | [`A`](SDL_Keycode::A) | [`SDLK_A`] | 'a' |
83/// | [`B`](SDL_Keycode::B) | [`SDLK_B`] | 'b' |
84/// | [`C`](SDL_Keycode::C) | [`SDLK_C`] | 'c' |
85/// | [`D`](SDL_Keycode::D) | [`SDLK_D`] | 'd' |
86/// | [`E`](SDL_Keycode::E) | [`SDLK_E`] | 'e' |
87/// | [`F`](SDL_Keycode::F) | [`SDLK_F`] | 'f' |
88/// | [`G`](SDL_Keycode::G) | [`SDLK_G`] | 'g' |
89/// | [`H`](SDL_Keycode::H) | [`SDLK_H`] | 'h' |
90/// | [`I`](SDL_Keycode::I) | [`SDLK_I`] | 'i' |
91/// | [`J`](SDL_Keycode::J) | [`SDLK_J`] | 'j' |
92/// | [`K`](SDL_Keycode::K) | [`SDLK_K`] | 'k' |
93/// | [`L`](SDL_Keycode::L) | [`SDLK_L`] | 'l' |
94/// | [`M`](SDL_Keycode::M) | [`SDLK_M`] | 'm' |
95/// | [`N`](SDL_Keycode::N) | [`SDLK_N`] | 'n' |
96/// | [`O`](SDL_Keycode::O) | [`SDLK_O`] | 'o' |
97/// | [`P`](SDL_Keycode::P) | [`SDLK_P`] | 'p' |
98/// | [`Q`](SDL_Keycode::Q) | [`SDLK_Q`] | 'q' |
99/// | [`R`](SDL_Keycode::R) | [`SDLK_R`] | 'r' |
100/// | [`S`](SDL_Keycode::S) | [`SDLK_S`] | 's' |
101/// | [`T`](SDL_Keycode::T) | [`SDLK_T`] | 't' |
102/// | [`U`](SDL_Keycode::U) | [`SDLK_U`] | 'u' |
103/// | [`V`](SDL_Keycode::V) | [`SDLK_V`] | 'v' |
104/// | [`W`](SDL_Keycode::W) | [`SDLK_W`] | 'w' |
105/// | [`X`](SDL_Keycode::X) | [`SDLK_X`] | 'x' |
106/// | [`Y`](SDL_Keycode::Y) | [`SDLK_Y`] | 'y' |
107/// | [`Z`](SDL_Keycode::Z) | [`SDLK_Z`] | 'z' |
108/// | [`LEFTBRACE`](SDL_Keycode::LEFTBRACE) | [`SDLK_LEFTBRACE`] | '{' |
109/// | [`PIPE`](SDL_Keycode::PIPE) | [`SDLK_PIPE`] | '|' |
110/// | [`RIGHTBRACE`](SDL_Keycode::RIGHTBRACE) | [`SDLK_RIGHTBRACE`] | '}' |
111/// | [`TILDE`](SDL_Keycode::TILDE) | [`SDLK_TILDE`] | '~' |
112/// | [`DELETE`](SDL_Keycode::DELETE) | [`SDLK_DELETE`] | '\x7F' |
113/// | [`PLUSMINUS`](SDL_Keycode::PLUSMINUS) | [`SDLK_PLUSMINUS`] | '\xB1' |
114/// | [`CAPSLOCK`](SDL_Keycode::CAPSLOCK) | [`SDLK_CAPSLOCK`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CAPSLOCK`]) |
115/// | [`F1`](SDL_Keycode::F1) | [`SDLK_F1`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F1`]) |
116/// | [`F2`](SDL_Keycode::F2) | [`SDLK_F2`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F2`]) |
117/// | [`F3`](SDL_Keycode::F3) | [`SDLK_F3`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F3`]) |
118/// | [`F4`](SDL_Keycode::F4) | [`SDLK_F4`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F4`]) |
119/// | [`F5`](SDL_Keycode::F5) | [`SDLK_F5`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F5`]) |
120/// | [`F6`](SDL_Keycode::F6) | [`SDLK_F6`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F6`]) |
121/// | [`F7`](SDL_Keycode::F7) | [`SDLK_F7`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F7`]) |
122/// | [`F8`](SDL_Keycode::F8) | [`SDLK_F8`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F8`]) |
123/// | [`F9`](SDL_Keycode::F9) | [`SDLK_F9`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F9`]) |
124/// | [`F10`](SDL_Keycode::F10) | [`SDLK_F10`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F10`]) |
125/// | [`F11`](SDL_Keycode::F11) | [`SDLK_F11`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F11`]) |
126/// | [`F12`](SDL_Keycode::F12) | [`SDLK_F12`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F12`]) |
127/// | [`PRINTSCREEN`](SDL_Keycode::PRINTSCREEN) | [`SDLK_PRINTSCREEN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PRINTSCREEN`]) |
128/// | [`SCROLLLOCK`](SDL_Keycode::SCROLLLOCK) | [`SDLK_SCROLLLOCK`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SCROLLLOCK`]) |
129/// | [`PAUSE`](SDL_Keycode::PAUSE) | [`SDLK_PAUSE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAUSE`]) |
130/// | [`INSERT`](SDL_Keycode::INSERT) | [`SDLK_INSERT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_INSERT`]) |
131/// | [`HOME`](SDL_Keycode::HOME) | [`SDLK_HOME`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_HOME`]) |
132/// | [`PAGEUP`](SDL_Keycode::PAGEUP) | [`SDLK_PAGEUP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAGEUP`]) |
133/// | [`END`](SDL_Keycode::END) | [`SDLK_END`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_END`]) |
134/// | [`PAGEDOWN`](SDL_Keycode::PAGEDOWN) | [`SDLK_PAGEDOWN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAGEDOWN`]) |
135/// | [`RIGHT`](SDL_Keycode::RIGHT) | [`SDLK_RIGHT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RIGHT`]) |
136/// | [`LEFT`](SDL_Keycode::LEFT) | [`SDLK_LEFT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LEFT`]) |
137/// | [`DOWN`](SDL_Keycode::DOWN) | [`SDLK_DOWN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_DOWN`]) |
138/// | [`UP`](SDL_Keycode::UP) | [`SDLK_UP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_UP`]) |
139/// | [`NUMLOCKCLEAR`](SDL_Keycode::NUMLOCKCLEAR) | [`SDLK_NUMLOCKCLEAR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_NUMLOCKCLEAR`]) |
140/// | [`KP_DIVIDE`](SDL_Keycode::KP_DIVIDE) | [`SDLK_KP_DIVIDE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DIVIDE`]) |
141/// | [`KP_MULTIPLY`](SDL_Keycode::KP_MULTIPLY) | [`SDLK_KP_MULTIPLY`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MULTIPLY`]) |
142/// | [`KP_MINUS`](SDL_Keycode::KP_MINUS) | [`SDLK_KP_MINUS`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MINUS`]) |
143/// | [`KP_PLUS`](SDL_Keycode::KP_PLUS) | [`SDLK_KP_PLUS`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PLUS`]) |
144/// | [`KP_ENTER`](SDL_Keycode::KP_ENTER) | [`SDLK_KP_ENTER`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_ENTER`]) |
145/// | [`KP_1`](SDL_Keycode::KP_1) | [`SDLK_KP_1`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_1`]) |
146/// | [`KP_2`](SDL_Keycode::KP_2) | [`SDLK_KP_2`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_2`]) |
147/// | [`KP_3`](SDL_Keycode::KP_3) | [`SDLK_KP_3`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_3`]) |
148/// | [`KP_4`](SDL_Keycode::KP_4) | [`SDLK_KP_4`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_4`]) |
149/// | [`KP_5`](SDL_Keycode::KP_5) | [`SDLK_KP_5`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_5`]) |
150/// | [`KP_6`](SDL_Keycode::KP_6) | [`SDLK_KP_6`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_6`]) |
151/// | [`KP_7`](SDL_Keycode::KP_7) | [`SDLK_KP_7`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_7`]) |
152/// | [`KP_8`](SDL_Keycode::KP_8) | [`SDLK_KP_8`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_8`]) |
153/// | [`KP_9`](SDL_Keycode::KP_9) | [`SDLK_KP_9`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_9`]) |
154/// | [`KP_0`](SDL_Keycode::KP_0) | [`SDLK_KP_0`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_0`]) |
155/// | [`KP_PERIOD`](SDL_Keycode::KP_PERIOD) | [`SDLK_KP_PERIOD`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PERIOD`]) |
156/// | [`APPLICATION`](SDL_Keycode::APPLICATION) | [`SDLK_APPLICATION`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_APPLICATION`]) |
157/// | [`POWER`](SDL_Keycode::POWER) | [`SDLK_POWER`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_POWER`]) |
158/// | [`KP_EQUALS`](SDL_Keycode::KP_EQUALS) | [`SDLK_KP_EQUALS`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EQUALS`]) |
159/// | [`F13`](SDL_Keycode::F13) | [`SDLK_F13`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F13`]) |
160/// | [`F14`](SDL_Keycode::F14) | [`SDLK_F14`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F14`]) |
161/// | [`F15`](SDL_Keycode::F15) | [`SDLK_F15`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F15`]) |
162/// | [`F16`](SDL_Keycode::F16) | [`SDLK_F16`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F16`]) |
163/// | [`F17`](SDL_Keycode::F17) | [`SDLK_F17`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F17`]) |
164/// | [`F18`](SDL_Keycode::F18) | [`SDLK_F18`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F18`]) |
165/// | [`F19`](SDL_Keycode::F19) | [`SDLK_F19`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F19`]) |
166/// | [`F20`](SDL_Keycode::F20) | [`SDLK_F20`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F20`]) |
167/// | [`F21`](SDL_Keycode::F21) | [`SDLK_F21`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F21`]) |
168/// | [`F22`](SDL_Keycode::F22) | [`SDLK_F22`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F22`]) |
169/// | [`F23`](SDL_Keycode::F23) | [`SDLK_F23`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F23`]) |
170/// | [`F24`](SDL_Keycode::F24) | [`SDLK_F24`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F24`]) |
171/// | [`EXECUTE`](SDL_Keycode::EXECUTE) | [`SDLK_EXECUTE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_EXECUTE`]) |
172/// | [`HELP`](SDL_Keycode::HELP) | [`SDLK_HELP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_HELP`]) |
173/// | [`MENU`](SDL_Keycode::MENU) | [`SDLK_MENU`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MENU`]) |
174/// | [`SELECT`](SDL_Keycode::SELECT) | [`SDLK_SELECT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SELECT`]) |
175/// | [`STOP`](SDL_Keycode::STOP) | [`SDLK_STOP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_STOP`]) |
176/// | [`AGAIN`](SDL_Keycode::AGAIN) | [`SDLK_AGAIN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AGAIN`]) |
177/// | [`UNDO`](SDL_Keycode::UNDO) | [`SDLK_UNDO`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_UNDO`]) |
178/// | [`CUT`](SDL_Keycode::CUT) | [`SDLK_CUT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CUT`]) |
179/// | [`COPY`](SDL_Keycode::COPY) | [`SDLK_COPY`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_COPY`]) |
180/// | [`PASTE`](SDL_Keycode::PASTE) | [`SDLK_PASTE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PASTE`]) |
181/// | [`FIND`](SDL_Keycode::FIND) | [`SDLK_FIND`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_FIND`]) |
182/// | [`MUTE`](SDL_Keycode::MUTE) | [`SDLK_MUTE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MUTE`]) |
183/// | [`VOLUMEUP`](SDL_Keycode::VOLUMEUP) | [`SDLK_VOLUMEUP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_VOLUMEUP`]) |
184/// | [`VOLUMEDOWN`](SDL_Keycode::VOLUMEDOWN) | [`SDLK_VOLUMEDOWN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_VOLUMEDOWN`]) |
185/// | [`KP_COMMA`](SDL_Keycode::KP_COMMA) | [`SDLK_KP_COMMA`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_COMMA`]) |
186/// | [`KP_EQUALSAS400`](SDL_Keycode::KP_EQUALSAS400) | [`SDLK_KP_EQUALSAS400`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EQUALSAS400`]) |
187/// | [`ALTERASE`](SDL_Keycode::ALTERASE) | [`SDLK_ALTERASE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_ALTERASE`]) |
188/// | [`SYSREQ`](SDL_Keycode::SYSREQ) | [`SDLK_SYSREQ`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SYSREQ`]) |
189/// | [`CANCEL`](SDL_Keycode::CANCEL) | [`SDLK_CANCEL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CANCEL`]) |
190/// | [`CLEAR`](SDL_Keycode::CLEAR) | [`SDLK_CLEAR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CLEAR`]) |
191/// | [`PRIOR`](SDL_Keycode::PRIOR) | [`SDLK_PRIOR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PRIOR`]) |
192/// | [`RETURN2`](SDL_Keycode::RETURN2) | [`SDLK_RETURN2`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RETURN2`]) |
193/// | [`SEPARATOR`](SDL_Keycode::SEPARATOR) | [`SDLK_SEPARATOR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SEPARATOR`]) |
194/// | [`OUT`](SDL_Keycode::OUT) | [`SDLK_OUT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_OUT`]) |
195/// | [`OPER`](SDL_Keycode::OPER) | [`SDLK_OPER`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_OPER`]) |
196/// | [`CLEARAGAIN`](SDL_Keycode::CLEARAGAIN) | [`SDLK_CLEARAGAIN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CLEARAGAIN`]) |
197/// | [`CRSEL`](SDL_Keycode::CRSEL) | [`SDLK_CRSEL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CRSEL`]) |
198/// | [`EXSEL`](SDL_Keycode::EXSEL) | [`SDLK_EXSEL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_EXSEL`]) |
199/// | [`KP_00`](SDL_Keycode::KP_00) | [`SDLK_KP_00`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_00`]) |
200/// | [`KP_000`](SDL_Keycode::KP_000) | [`SDLK_KP_000`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_000`]) |
201/// | [`THOUSANDSSEPARATOR`](SDL_Keycode::THOUSANDSSEPARATOR) | [`SDLK_THOUSANDSSEPARATOR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_THOUSANDSSEPARATOR`]) |
202/// | [`DECIMALSEPARATOR`](SDL_Keycode::DECIMALSEPARATOR) | [`SDLK_DECIMALSEPARATOR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_DECIMALSEPARATOR`]) |
203/// | [`CURRENCYUNIT`](SDL_Keycode::CURRENCYUNIT) | [`SDLK_CURRENCYUNIT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CURRENCYUNIT`]) |
204/// | [`CURRENCYSUBUNIT`](SDL_Keycode::CURRENCYSUBUNIT) | [`SDLK_CURRENCYSUBUNIT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CURRENCYSUBUNIT`]) |
205/// | [`KP_LEFTPAREN`](SDL_Keycode::KP_LEFTPAREN) | [`SDLK_KP_LEFTPAREN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LEFTPAREN`]) |
206/// | [`KP_RIGHTPAREN`](SDL_Keycode::KP_RIGHTPAREN) | [`SDLK_KP_RIGHTPAREN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_RIGHTPAREN`]) |
207/// | [`KP_LEFTBRACE`](SDL_Keycode::KP_LEFTBRACE) | [`SDLK_KP_LEFTBRACE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LEFTBRACE`]) |
208/// | [`KP_RIGHTBRACE`](SDL_Keycode::KP_RIGHTBRACE) | [`SDLK_KP_RIGHTBRACE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_RIGHTBRACE`]) |
209/// | [`KP_TAB`](SDL_Keycode::KP_TAB) | [`SDLK_KP_TAB`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_TAB`]) |
210/// | [`KP_BACKSPACE`](SDL_Keycode::KP_BACKSPACE) | [`SDLK_KP_BACKSPACE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_BACKSPACE`]) |
211/// | [`KP_A`](SDL_Keycode::KP_A) | [`SDLK_KP_A`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_A`]) |
212/// | [`KP_B`](SDL_Keycode::KP_B) | [`SDLK_KP_B`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_B`]) |
213/// | [`KP_C`](SDL_Keycode::KP_C) | [`SDLK_KP_C`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_C`]) |
214/// | [`KP_D`](SDL_Keycode::KP_D) | [`SDLK_KP_D`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_D`]) |
215/// | [`KP_E`](SDL_Keycode::KP_E) | [`SDLK_KP_E`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_E`]) |
216/// | [`KP_F`](SDL_Keycode::KP_F) | [`SDLK_KP_F`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_F`]) |
217/// | [`KP_XOR`](SDL_Keycode::KP_XOR) | [`SDLK_KP_XOR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_XOR`]) |
218/// | [`KP_POWER`](SDL_Keycode::KP_POWER) | [`SDLK_KP_POWER`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_POWER`]) |
219/// | [`KP_PERCENT`](SDL_Keycode::KP_PERCENT) | [`SDLK_KP_PERCENT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PERCENT`]) |
220/// | [`KP_LESS`](SDL_Keycode::KP_LESS) | [`SDLK_KP_LESS`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LESS`]) |
221/// | [`KP_GREATER`](SDL_Keycode::KP_GREATER) | [`SDLK_KP_GREATER`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_GREATER`]) |
222/// | [`KP_AMPERSAND`](SDL_Keycode::KP_AMPERSAND) | [`SDLK_KP_AMPERSAND`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_AMPERSAND`]) |
223/// | [`KP_DBLAMPERSAND`](SDL_Keycode::KP_DBLAMPERSAND) | [`SDLK_KP_DBLAMPERSAND`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DBLAMPERSAND`]) |
224/// | [`KP_VERTICALBAR`](SDL_Keycode::KP_VERTICALBAR) | [`SDLK_KP_VERTICALBAR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_VERTICALBAR`]) |
225/// | [`KP_DBLVERTICALBAR`](SDL_Keycode::KP_DBLVERTICALBAR) | [`SDLK_KP_DBLVERTICALBAR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DBLVERTICALBAR`]) |
226/// | [`KP_COLON`](SDL_Keycode::KP_COLON) | [`SDLK_KP_COLON`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_COLON`]) |
227/// | [`KP_HASH`](SDL_Keycode::KP_HASH) | [`SDLK_KP_HASH`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_HASH`]) |
228/// | [`KP_SPACE`](SDL_Keycode::KP_SPACE) | [`SDLK_KP_SPACE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_SPACE`]) |
229/// | [`KP_AT`](SDL_Keycode::KP_AT) | [`SDLK_KP_AT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_AT`]) |
230/// | [`KP_EXCLAM`](SDL_Keycode::KP_EXCLAM) | [`SDLK_KP_EXCLAM`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EXCLAM`]) |
231/// | [`KP_MEMSTORE`](SDL_Keycode::KP_MEMSTORE) | [`SDLK_KP_MEMSTORE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMSTORE`]) |
232/// | [`KP_MEMRECALL`](SDL_Keycode::KP_MEMRECALL) | [`SDLK_KP_MEMRECALL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMRECALL`]) |
233/// | [`KP_MEMCLEAR`](SDL_Keycode::KP_MEMCLEAR) | [`SDLK_KP_MEMCLEAR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMCLEAR`]) |
234/// | [`KP_MEMADD`](SDL_Keycode::KP_MEMADD) | [`SDLK_KP_MEMADD`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMADD`]) |
235/// | [`KP_MEMSUBTRACT`](SDL_Keycode::KP_MEMSUBTRACT) | [`SDLK_KP_MEMSUBTRACT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMSUBTRACT`]) |
236/// | [`KP_MEMMULTIPLY`](SDL_Keycode::KP_MEMMULTIPLY) | [`SDLK_KP_MEMMULTIPLY`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMMULTIPLY`]) |
237/// | [`KP_MEMDIVIDE`](SDL_Keycode::KP_MEMDIVIDE) | [`SDLK_KP_MEMDIVIDE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMDIVIDE`]) |
238/// | [`KP_PLUSMINUS`](SDL_Keycode::KP_PLUSMINUS) | [`SDLK_KP_PLUSMINUS`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PLUSMINUS`]) |
239/// | [`KP_CLEAR`](SDL_Keycode::KP_CLEAR) | [`SDLK_KP_CLEAR`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_CLEAR`]) |
240/// | [`KP_CLEARENTRY`](SDL_Keycode::KP_CLEARENTRY) | [`SDLK_KP_CLEARENTRY`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_CLEARENTRY`]) |
241/// | [`KP_BINARY`](SDL_Keycode::KP_BINARY) | [`SDLK_KP_BINARY`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_BINARY`]) |
242/// | [`KP_OCTAL`](SDL_Keycode::KP_OCTAL) | [`SDLK_KP_OCTAL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_OCTAL`]) |
243/// | [`KP_DECIMAL`](SDL_Keycode::KP_DECIMAL) | [`SDLK_KP_DECIMAL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DECIMAL`]) |
244/// | [`KP_HEXADECIMAL`](SDL_Keycode::KP_HEXADECIMAL) | [`SDLK_KP_HEXADECIMAL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_HEXADECIMAL`]) |
245/// | [`LCTRL`](SDL_Keycode::LCTRL) | [`SDLK_LCTRL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LCTRL`]) |
246/// | [`LSHIFT`](SDL_Keycode::LSHIFT) | [`SDLK_LSHIFT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LSHIFT`]) |
247/// | [`LALT`](SDL_Keycode::LALT) | [`SDLK_LALT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LALT`]) |
248/// | [`LGUI`](SDL_Keycode::LGUI) | [`SDLK_LGUI`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LGUI`]) |
249/// | [`RCTRL`](SDL_Keycode::RCTRL) | [`SDLK_RCTRL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RCTRL`]) |
250/// | [`RSHIFT`](SDL_Keycode::RSHIFT) | [`SDLK_RSHIFT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RSHIFT`]) |
251/// | [`RALT`](SDL_Keycode::RALT) | [`SDLK_RALT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RALT`]) |
252/// | [`RGUI`](SDL_Keycode::RGUI) | [`SDLK_RGUI`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RGUI`]) |
253/// | [`MODE`](SDL_Keycode::MODE) | [`SDLK_MODE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MODE`]) |
254/// | [`SLEEP`](SDL_Keycode::SLEEP) | [`SDLK_SLEEP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SLEEP`]) |
255/// | [`WAKE`](SDL_Keycode::WAKE) | [`SDLK_WAKE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_WAKE`]) |
256/// | [`CHANNEL_INCREMENT`](SDL_Keycode::CHANNEL_INCREMENT) | [`SDLK_CHANNEL_INCREMENT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CHANNEL_INCREMENT`]) |
257/// | [`CHANNEL_DECREMENT`](SDL_Keycode::CHANNEL_DECREMENT) | [`SDLK_CHANNEL_DECREMENT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CHANNEL_DECREMENT`]) |
258/// | [`MEDIA_PLAY`](SDL_Keycode::MEDIA_PLAY) | [`SDLK_MEDIA_PLAY`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PLAY`]) |
259/// | [`MEDIA_PAUSE`](SDL_Keycode::MEDIA_PAUSE) | [`SDLK_MEDIA_PAUSE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PAUSE`]) |
260/// | [`MEDIA_RECORD`](SDL_Keycode::MEDIA_RECORD) | [`SDLK_MEDIA_RECORD`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_RECORD`]) |
261/// | [`MEDIA_FAST_FORWARD`](SDL_Keycode::MEDIA_FAST_FORWARD) | [`SDLK_MEDIA_FAST_FORWARD`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_FAST_FORWARD`]) |
262/// | [`MEDIA_REWIND`](SDL_Keycode::MEDIA_REWIND) | [`SDLK_MEDIA_REWIND`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_REWIND`]) |
263/// | [`MEDIA_NEXT_TRACK`](SDL_Keycode::MEDIA_NEXT_TRACK) | [`SDLK_MEDIA_NEXT_TRACK`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_NEXT_TRACK`]) |
264/// | [`MEDIA_PREVIOUS_TRACK`](SDL_Keycode::MEDIA_PREVIOUS_TRACK) | [`SDLK_MEDIA_PREVIOUS_TRACK`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PREVIOUS_TRACK`]) |
265/// | [`MEDIA_STOP`](SDL_Keycode::MEDIA_STOP) | [`SDLK_MEDIA_STOP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_STOP`]) |
266/// | [`MEDIA_EJECT`](SDL_Keycode::MEDIA_EJECT) | [`SDLK_MEDIA_EJECT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_EJECT`]) |
267/// | [`MEDIA_PLAY_PAUSE`](SDL_Keycode::MEDIA_PLAY_PAUSE) | [`SDLK_MEDIA_PLAY_PAUSE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PLAY_PAUSE`]) |
268/// | [`MEDIA_SELECT`](SDL_Keycode::MEDIA_SELECT) | [`SDLK_MEDIA_SELECT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_SELECT`]) |
269/// | [`AC_NEW`](SDL_Keycode::AC_NEW) | [`SDLK_AC_NEW`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_NEW`]) |
270/// | [`AC_OPEN`](SDL_Keycode::AC_OPEN) | [`SDLK_AC_OPEN`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_OPEN`]) |
271/// | [`AC_CLOSE`](SDL_Keycode::AC_CLOSE) | [`SDLK_AC_CLOSE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_CLOSE`]) |
272/// | [`AC_EXIT`](SDL_Keycode::AC_EXIT) | [`SDLK_AC_EXIT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_EXIT`]) |
273/// | [`AC_SAVE`](SDL_Keycode::AC_SAVE) | [`SDLK_AC_SAVE`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_SAVE`]) |
274/// | [`AC_PRINT`](SDL_Keycode::AC_PRINT) | [`SDLK_AC_PRINT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_PRINT`]) |
275/// | [`AC_PROPERTIES`](SDL_Keycode::AC_PROPERTIES) | [`SDLK_AC_PROPERTIES`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_PROPERTIES`]) |
276/// | [`AC_SEARCH`](SDL_Keycode::AC_SEARCH) | [`SDLK_AC_SEARCH`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_SEARCH`]) |
277/// | [`AC_HOME`](SDL_Keycode::AC_HOME) | [`SDLK_AC_HOME`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_HOME`]) |
278/// | [`AC_BACK`](SDL_Keycode::AC_BACK) | [`SDLK_AC_BACK`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_BACK`]) |
279/// | [`AC_FORWARD`](SDL_Keycode::AC_FORWARD) | [`SDLK_AC_FORWARD`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_FORWARD`]) |
280/// | [`AC_STOP`](SDL_Keycode::AC_STOP) | [`SDLK_AC_STOP`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_STOP`]) |
281/// | [`AC_REFRESH`](SDL_Keycode::AC_REFRESH) | [`SDLK_AC_REFRESH`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_REFRESH`]) |
282/// | [`AC_BOOKMARKS`](SDL_Keycode::AC_BOOKMARKS) | [`SDLK_AC_BOOKMARKS`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_BOOKMARKS`]) |
283/// | [`SOFTLEFT`](SDL_Keycode::SOFTLEFT) | [`SDLK_SOFTLEFT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SOFTLEFT`]) |
284/// | [`SOFTRIGHT`](SDL_Keycode::SOFTRIGHT) | [`SDLK_SOFTRIGHT`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SOFTRIGHT`]) |
285/// | [`CALL`](SDL_Keycode::CALL) | [`SDLK_CALL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CALL`]) |
286/// | [`ENDCALL`](SDL_Keycode::ENDCALL) | [`SDLK_ENDCALL`] | SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_ENDCALL`]) |
287/// | [`LEFT_TAB`](SDL_Keycode::LEFT_TAB) | [`SDLK_LEFT_TAB`] | Extended key Left Tab |
288/// | [`LEVEL5_SHIFT`](SDL_Keycode::LEVEL5_SHIFT) | [`SDLK_LEVEL5_SHIFT`] | Extended key Level 5 Shift |
289/// | [`MULTI_KEY_COMPOSE`](SDL_Keycode::MULTI_KEY_COMPOSE) | [`SDLK_MULTI_KEY_COMPOSE`] | Extended key Multi-key Compose |
290/// | [`LMETA`](SDL_Keycode::LMETA) | [`SDLK_LMETA`] | Extended key Left Meta |
291/// | [`RMETA`](SDL_Keycode::RMETA) | [`SDLK_RMETA`] | Extended key Right Meta |
292/// | [`LHYPER`](SDL_Keycode::LHYPER) | [`SDLK_LHYPER`] | Extended key Left Hyper |
293/// | [`RHYPER`](SDL_Keycode::RHYPER) | [`SDLK_RHYPER`] | Extended key Right Hyper |
294#[repr(transparent)]
295#[derive(Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
296pub struct SDL_Keycode(pub Uint32);
297
298impl ::core::cmp::PartialEq<Uint32> for SDL_Keycode {
299    #[inline(always)]
300    fn eq(&self, other: &Uint32) -> bool {
301        &self.0 == other
302    }
303}
304
305impl ::core::cmp::PartialEq<SDL_Keycode> for Uint32 {
306    #[inline(always)]
307    fn eq(&self, other: &SDL_Keycode) -> bool {
308        self == &other.0
309    }
310}
311
312impl From<SDL_Keycode> for Uint32 {
313    #[inline(always)]
314    fn from(value: SDL_Keycode) -> Self {
315        value.0
316    }
317}
318
319#[cfg(feature = "debug-impls")]
320impl ::core::fmt::Debug for SDL_Keycode {
321    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
322        #[allow(unreachable_patterns)]
323        f.write_str(match *self {
324            Self::EXTENDED_MASK => "SDLK_EXTENDED_MASK",
325            Self::SCANCODE_MASK => "SDLK_SCANCODE_MASK",
326            Self::UNKNOWN => "SDLK_UNKNOWN",
327            Self::RETURN => "SDLK_RETURN",
328            Self::ESCAPE => "SDLK_ESCAPE",
329            Self::BACKSPACE => "SDLK_BACKSPACE",
330            Self::TAB => "SDLK_TAB",
331            Self::SPACE => "SDLK_SPACE",
332            Self::EXCLAIM => "SDLK_EXCLAIM",
333            Self::DBLAPOSTROPHE => "SDLK_DBLAPOSTROPHE",
334            Self::HASH => "SDLK_HASH",
335            Self::DOLLAR => "SDLK_DOLLAR",
336            Self::PERCENT => "SDLK_PERCENT",
337            Self::AMPERSAND => "SDLK_AMPERSAND",
338            Self::APOSTROPHE => "SDLK_APOSTROPHE",
339            Self::LEFTPAREN => "SDLK_LEFTPAREN",
340            Self::RIGHTPAREN => "SDLK_RIGHTPAREN",
341            Self::ASTERISK => "SDLK_ASTERISK",
342            Self::PLUS => "SDLK_PLUS",
343            Self::COMMA => "SDLK_COMMA",
344            Self::MINUS => "SDLK_MINUS",
345            Self::PERIOD => "SDLK_PERIOD",
346            Self::SLASH => "SDLK_SLASH",
347            Self::_0 => "SDLK_0",
348            Self::_1 => "SDLK_1",
349            Self::_2 => "SDLK_2",
350            Self::_3 => "SDLK_3",
351            Self::_4 => "SDLK_4",
352            Self::_5 => "SDLK_5",
353            Self::_6 => "SDLK_6",
354            Self::_7 => "SDLK_7",
355            Self::_8 => "SDLK_8",
356            Self::_9 => "SDLK_9",
357            Self::COLON => "SDLK_COLON",
358            Self::SEMICOLON => "SDLK_SEMICOLON",
359            Self::LESS => "SDLK_LESS",
360            Self::EQUALS => "SDLK_EQUALS",
361            Self::GREATER => "SDLK_GREATER",
362            Self::QUESTION => "SDLK_QUESTION",
363            Self::AT => "SDLK_AT",
364            Self::LEFTBRACKET => "SDLK_LEFTBRACKET",
365            Self::BACKSLASH => "SDLK_BACKSLASH",
366            Self::RIGHTBRACKET => "SDLK_RIGHTBRACKET",
367            Self::CARET => "SDLK_CARET",
368            Self::UNDERSCORE => "SDLK_UNDERSCORE",
369            Self::GRAVE => "SDLK_GRAVE",
370            Self::A => "SDLK_A",
371            Self::B => "SDLK_B",
372            Self::C => "SDLK_C",
373            Self::D => "SDLK_D",
374            Self::E => "SDLK_E",
375            Self::F => "SDLK_F",
376            Self::G => "SDLK_G",
377            Self::H => "SDLK_H",
378            Self::I => "SDLK_I",
379            Self::J => "SDLK_J",
380            Self::K => "SDLK_K",
381            Self::L => "SDLK_L",
382            Self::M => "SDLK_M",
383            Self::N => "SDLK_N",
384            Self::O => "SDLK_O",
385            Self::P => "SDLK_P",
386            Self::Q => "SDLK_Q",
387            Self::R => "SDLK_R",
388            Self::S => "SDLK_S",
389            Self::T => "SDLK_T",
390            Self::U => "SDLK_U",
391            Self::V => "SDLK_V",
392            Self::W => "SDLK_W",
393            Self::X => "SDLK_X",
394            Self::Y => "SDLK_Y",
395            Self::Z => "SDLK_Z",
396            Self::LEFTBRACE => "SDLK_LEFTBRACE",
397            Self::PIPE => "SDLK_PIPE",
398            Self::RIGHTBRACE => "SDLK_RIGHTBRACE",
399            Self::TILDE => "SDLK_TILDE",
400            Self::DELETE => "SDLK_DELETE",
401            Self::PLUSMINUS => "SDLK_PLUSMINUS",
402            Self::CAPSLOCK => "SDLK_CAPSLOCK",
403            Self::F1 => "SDLK_F1",
404            Self::F2 => "SDLK_F2",
405            Self::F3 => "SDLK_F3",
406            Self::F4 => "SDLK_F4",
407            Self::F5 => "SDLK_F5",
408            Self::F6 => "SDLK_F6",
409            Self::F7 => "SDLK_F7",
410            Self::F8 => "SDLK_F8",
411            Self::F9 => "SDLK_F9",
412            Self::F10 => "SDLK_F10",
413            Self::F11 => "SDLK_F11",
414            Self::F12 => "SDLK_F12",
415            Self::PRINTSCREEN => "SDLK_PRINTSCREEN",
416            Self::SCROLLLOCK => "SDLK_SCROLLLOCK",
417            Self::PAUSE => "SDLK_PAUSE",
418            Self::INSERT => "SDLK_INSERT",
419            Self::HOME => "SDLK_HOME",
420            Self::PAGEUP => "SDLK_PAGEUP",
421            Self::END => "SDLK_END",
422            Self::PAGEDOWN => "SDLK_PAGEDOWN",
423            Self::RIGHT => "SDLK_RIGHT",
424            Self::LEFT => "SDLK_LEFT",
425            Self::DOWN => "SDLK_DOWN",
426            Self::UP => "SDLK_UP",
427            Self::NUMLOCKCLEAR => "SDLK_NUMLOCKCLEAR",
428            Self::KP_DIVIDE => "SDLK_KP_DIVIDE",
429            Self::KP_MULTIPLY => "SDLK_KP_MULTIPLY",
430            Self::KP_MINUS => "SDLK_KP_MINUS",
431            Self::KP_PLUS => "SDLK_KP_PLUS",
432            Self::KP_ENTER => "SDLK_KP_ENTER",
433            Self::KP_1 => "SDLK_KP_1",
434            Self::KP_2 => "SDLK_KP_2",
435            Self::KP_3 => "SDLK_KP_3",
436            Self::KP_4 => "SDLK_KP_4",
437            Self::KP_5 => "SDLK_KP_5",
438            Self::KP_6 => "SDLK_KP_6",
439            Self::KP_7 => "SDLK_KP_7",
440            Self::KP_8 => "SDLK_KP_8",
441            Self::KP_9 => "SDLK_KP_9",
442            Self::KP_0 => "SDLK_KP_0",
443            Self::KP_PERIOD => "SDLK_KP_PERIOD",
444            Self::APPLICATION => "SDLK_APPLICATION",
445            Self::POWER => "SDLK_POWER",
446            Self::KP_EQUALS => "SDLK_KP_EQUALS",
447            Self::F13 => "SDLK_F13",
448            Self::F14 => "SDLK_F14",
449            Self::F15 => "SDLK_F15",
450            Self::F16 => "SDLK_F16",
451            Self::F17 => "SDLK_F17",
452            Self::F18 => "SDLK_F18",
453            Self::F19 => "SDLK_F19",
454            Self::F20 => "SDLK_F20",
455            Self::F21 => "SDLK_F21",
456            Self::F22 => "SDLK_F22",
457            Self::F23 => "SDLK_F23",
458            Self::F24 => "SDLK_F24",
459            Self::EXECUTE => "SDLK_EXECUTE",
460            Self::HELP => "SDLK_HELP",
461            Self::MENU => "SDLK_MENU",
462            Self::SELECT => "SDLK_SELECT",
463            Self::STOP => "SDLK_STOP",
464            Self::AGAIN => "SDLK_AGAIN",
465            Self::UNDO => "SDLK_UNDO",
466            Self::CUT => "SDLK_CUT",
467            Self::COPY => "SDLK_COPY",
468            Self::PASTE => "SDLK_PASTE",
469            Self::FIND => "SDLK_FIND",
470            Self::MUTE => "SDLK_MUTE",
471            Self::VOLUMEUP => "SDLK_VOLUMEUP",
472            Self::VOLUMEDOWN => "SDLK_VOLUMEDOWN",
473            Self::KP_COMMA => "SDLK_KP_COMMA",
474            Self::KP_EQUALSAS400 => "SDLK_KP_EQUALSAS400",
475            Self::ALTERASE => "SDLK_ALTERASE",
476            Self::SYSREQ => "SDLK_SYSREQ",
477            Self::CANCEL => "SDLK_CANCEL",
478            Self::CLEAR => "SDLK_CLEAR",
479            Self::PRIOR => "SDLK_PRIOR",
480            Self::RETURN2 => "SDLK_RETURN2",
481            Self::SEPARATOR => "SDLK_SEPARATOR",
482            Self::OUT => "SDLK_OUT",
483            Self::OPER => "SDLK_OPER",
484            Self::CLEARAGAIN => "SDLK_CLEARAGAIN",
485            Self::CRSEL => "SDLK_CRSEL",
486            Self::EXSEL => "SDLK_EXSEL",
487            Self::KP_00 => "SDLK_KP_00",
488            Self::KP_000 => "SDLK_KP_000",
489            Self::THOUSANDSSEPARATOR => "SDLK_THOUSANDSSEPARATOR",
490            Self::DECIMALSEPARATOR => "SDLK_DECIMALSEPARATOR",
491            Self::CURRENCYUNIT => "SDLK_CURRENCYUNIT",
492            Self::CURRENCYSUBUNIT => "SDLK_CURRENCYSUBUNIT",
493            Self::KP_LEFTPAREN => "SDLK_KP_LEFTPAREN",
494            Self::KP_RIGHTPAREN => "SDLK_KP_RIGHTPAREN",
495            Self::KP_LEFTBRACE => "SDLK_KP_LEFTBRACE",
496            Self::KP_RIGHTBRACE => "SDLK_KP_RIGHTBRACE",
497            Self::KP_TAB => "SDLK_KP_TAB",
498            Self::KP_BACKSPACE => "SDLK_KP_BACKSPACE",
499            Self::KP_A => "SDLK_KP_A",
500            Self::KP_B => "SDLK_KP_B",
501            Self::KP_C => "SDLK_KP_C",
502            Self::KP_D => "SDLK_KP_D",
503            Self::KP_E => "SDLK_KP_E",
504            Self::KP_F => "SDLK_KP_F",
505            Self::KP_XOR => "SDLK_KP_XOR",
506            Self::KP_POWER => "SDLK_KP_POWER",
507            Self::KP_PERCENT => "SDLK_KP_PERCENT",
508            Self::KP_LESS => "SDLK_KP_LESS",
509            Self::KP_GREATER => "SDLK_KP_GREATER",
510            Self::KP_AMPERSAND => "SDLK_KP_AMPERSAND",
511            Self::KP_DBLAMPERSAND => "SDLK_KP_DBLAMPERSAND",
512            Self::KP_VERTICALBAR => "SDLK_KP_VERTICALBAR",
513            Self::KP_DBLVERTICALBAR => "SDLK_KP_DBLVERTICALBAR",
514            Self::KP_COLON => "SDLK_KP_COLON",
515            Self::KP_HASH => "SDLK_KP_HASH",
516            Self::KP_SPACE => "SDLK_KP_SPACE",
517            Self::KP_AT => "SDLK_KP_AT",
518            Self::KP_EXCLAM => "SDLK_KP_EXCLAM",
519            Self::KP_MEMSTORE => "SDLK_KP_MEMSTORE",
520            Self::KP_MEMRECALL => "SDLK_KP_MEMRECALL",
521            Self::KP_MEMCLEAR => "SDLK_KP_MEMCLEAR",
522            Self::KP_MEMADD => "SDLK_KP_MEMADD",
523            Self::KP_MEMSUBTRACT => "SDLK_KP_MEMSUBTRACT",
524            Self::KP_MEMMULTIPLY => "SDLK_KP_MEMMULTIPLY",
525            Self::KP_MEMDIVIDE => "SDLK_KP_MEMDIVIDE",
526            Self::KP_PLUSMINUS => "SDLK_KP_PLUSMINUS",
527            Self::KP_CLEAR => "SDLK_KP_CLEAR",
528            Self::KP_CLEARENTRY => "SDLK_KP_CLEARENTRY",
529            Self::KP_BINARY => "SDLK_KP_BINARY",
530            Self::KP_OCTAL => "SDLK_KP_OCTAL",
531            Self::KP_DECIMAL => "SDLK_KP_DECIMAL",
532            Self::KP_HEXADECIMAL => "SDLK_KP_HEXADECIMAL",
533            Self::LCTRL => "SDLK_LCTRL",
534            Self::LSHIFT => "SDLK_LSHIFT",
535            Self::LALT => "SDLK_LALT",
536            Self::LGUI => "SDLK_LGUI",
537            Self::RCTRL => "SDLK_RCTRL",
538            Self::RSHIFT => "SDLK_RSHIFT",
539            Self::RALT => "SDLK_RALT",
540            Self::RGUI => "SDLK_RGUI",
541            Self::MODE => "SDLK_MODE",
542            Self::SLEEP => "SDLK_SLEEP",
543            Self::WAKE => "SDLK_WAKE",
544            Self::CHANNEL_INCREMENT => "SDLK_CHANNEL_INCREMENT",
545            Self::CHANNEL_DECREMENT => "SDLK_CHANNEL_DECREMENT",
546            Self::MEDIA_PLAY => "SDLK_MEDIA_PLAY",
547            Self::MEDIA_PAUSE => "SDLK_MEDIA_PAUSE",
548            Self::MEDIA_RECORD => "SDLK_MEDIA_RECORD",
549            Self::MEDIA_FAST_FORWARD => "SDLK_MEDIA_FAST_FORWARD",
550            Self::MEDIA_REWIND => "SDLK_MEDIA_REWIND",
551            Self::MEDIA_NEXT_TRACK => "SDLK_MEDIA_NEXT_TRACK",
552            Self::MEDIA_PREVIOUS_TRACK => "SDLK_MEDIA_PREVIOUS_TRACK",
553            Self::MEDIA_STOP => "SDLK_MEDIA_STOP",
554            Self::MEDIA_EJECT => "SDLK_MEDIA_EJECT",
555            Self::MEDIA_PLAY_PAUSE => "SDLK_MEDIA_PLAY_PAUSE",
556            Self::MEDIA_SELECT => "SDLK_MEDIA_SELECT",
557            Self::AC_NEW => "SDLK_AC_NEW",
558            Self::AC_OPEN => "SDLK_AC_OPEN",
559            Self::AC_CLOSE => "SDLK_AC_CLOSE",
560            Self::AC_EXIT => "SDLK_AC_EXIT",
561            Self::AC_SAVE => "SDLK_AC_SAVE",
562            Self::AC_PRINT => "SDLK_AC_PRINT",
563            Self::AC_PROPERTIES => "SDLK_AC_PROPERTIES",
564            Self::AC_SEARCH => "SDLK_AC_SEARCH",
565            Self::AC_HOME => "SDLK_AC_HOME",
566            Self::AC_BACK => "SDLK_AC_BACK",
567            Self::AC_FORWARD => "SDLK_AC_FORWARD",
568            Self::AC_STOP => "SDLK_AC_STOP",
569            Self::AC_REFRESH => "SDLK_AC_REFRESH",
570            Self::AC_BOOKMARKS => "SDLK_AC_BOOKMARKS",
571            Self::SOFTLEFT => "SDLK_SOFTLEFT",
572            Self::SOFTRIGHT => "SDLK_SOFTRIGHT",
573            Self::CALL => "SDLK_CALL",
574            Self::ENDCALL => "SDLK_ENDCALL",
575            Self::LEFT_TAB => "SDLK_LEFT_TAB",
576            Self::LEVEL5_SHIFT => "SDLK_LEVEL5_SHIFT",
577            Self::MULTI_KEY_COMPOSE => "SDLK_MULTI_KEY_COMPOSE",
578            Self::LMETA => "SDLK_LMETA",
579            Self::RMETA => "SDLK_RMETA",
580            Self::LHYPER => "SDLK_LHYPER",
581            Self::RHYPER => "SDLK_RHYPER",
582
583            _ => return write!(f, "SDL_Keycode({})", self.0),
584        })
585    }
586}
587
588impl SDL_Keycode {
589    pub const EXTENDED_MASK: Self = Self((536870912_u32 as Uint32));
590    pub const SCANCODE_MASK: Self = Self((1073741824_u32 as Uint32));
591    /// 0
592    pub const UNKNOWN: Self = Self((0x00000000 as Uint32));
593    /// '\r'
594    pub const RETURN: Self = Self((0x0000000d as Uint32));
595    /// '\x1B'
596    pub const ESCAPE: Self = Self((0x0000001b as Uint32));
597    /// '\b'
598    pub const BACKSPACE: Self = Self((0x00000008 as Uint32));
599    /// '\t'
600    pub const TAB: Self = Self((0x00000009 as Uint32));
601    /// ' '
602    pub const SPACE: Self = Self((0x00000020 as Uint32));
603    /// '!'
604    pub const EXCLAIM: Self = Self((0x00000021 as Uint32));
605    /// '"'
606    pub const DBLAPOSTROPHE: Self = Self((0x00000022 as Uint32));
607    /// '#'
608    pub const HASH: Self = Self((0x00000023 as Uint32));
609    /// '$'
610    pub const DOLLAR: Self = Self((0x00000024 as Uint32));
611    /// '%'
612    pub const PERCENT: Self = Self((0x00000025 as Uint32));
613    /// '&'
614    pub const AMPERSAND: Self = Self((0x00000026 as Uint32));
615    /// '\''
616    pub const APOSTROPHE: Self = Self((0x00000027 as Uint32));
617    /// '('
618    pub const LEFTPAREN: Self = Self((0x00000028 as Uint32));
619    /// ')'
620    pub const RIGHTPAREN: Self = Self((0x00000029 as Uint32));
621    /// '*'
622    pub const ASTERISK: Self = Self((0x0000002a as Uint32));
623    /// '+'
624    pub const PLUS: Self = Self((0x0000002b as Uint32));
625    /// ','
626    pub const COMMA: Self = Self((0x0000002c as Uint32));
627    /// '-'
628    pub const MINUS: Self = Self((0x0000002d as Uint32));
629    /// '.'
630    pub const PERIOD: Self = Self((0x0000002e as Uint32));
631    /// '/'
632    pub const SLASH: Self = Self((0x0000002f as Uint32));
633    /// '0'
634    pub const _0: Self = Self((0x00000030 as Uint32));
635    /// '1'
636    pub const _1: Self = Self((0x00000031 as Uint32));
637    /// '2'
638    pub const _2: Self = Self((0x00000032 as Uint32));
639    /// '3'
640    pub const _3: Self = Self((0x00000033 as Uint32));
641    /// '4'
642    pub const _4: Self = Self((0x00000034 as Uint32));
643    /// '5'
644    pub const _5: Self = Self((0x00000035 as Uint32));
645    /// '6'
646    pub const _6: Self = Self((0x00000036 as Uint32));
647    /// '7'
648    pub const _7: Self = Self((0x00000037 as Uint32));
649    /// '8'
650    pub const _8: Self = Self((0x00000038 as Uint32));
651    /// '9'
652    pub const _9: Self = Self((0x00000039 as Uint32));
653    /// ':'
654    pub const COLON: Self = Self((0x0000003a as Uint32));
655    /// ';'
656    pub const SEMICOLON: Self = Self((0x0000003b as Uint32));
657    /// '<'
658    pub const LESS: Self = Self((0x0000003c as Uint32));
659    /// '='
660    pub const EQUALS: Self = Self((0x0000003d as Uint32));
661    /// '>'
662    pub const GREATER: Self = Self((0x0000003e as Uint32));
663    /// '?'
664    pub const QUESTION: Self = Self((0x0000003f as Uint32));
665    /// '@'
666    pub const AT: Self = Self((0x00000040 as Uint32));
667    /// '['
668    pub const LEFTBRACKET: Self = Self((0x0000005b as Uint32));
669    /// '\\'
670    pub const BACKSLASH: Self = Self((0x0000005c as Uint32));
671    /// ']'
672    pub const RIGHTBRACKET: Self = Self((0x0000005d as Uint32));
673    /// '^'
674    pub const CARET: Self = Self((0x0000005e as Uint32));
675    /// '_'
676    pub const UNDERSCORE: Self = Self((0x0000005f as Uint32));
677    /// '`'
678    pub const GRAVE: Self = Self((0x00000060 as Uint32));
679    /// 'a'
680    pub const A: Self = Self((0x00000061 as Uint32));
681    /// 'b'
682    pub const B: Self = Self((0x00000062 as Uint32));
683    /// 'c'
684    pub const C: Self = Self((0x00000063 as Uint32));
685    /// 'd'
686    pub const D: Self = Self((0x00000064 as Uint32));
687    /// 'e'
688    pub const E: Self = Self((0x00000065 as Uint32));
689    /// 'f'
690    pub const F: Self = Self((0x00000066 as Uint32));
691    /// 'g'
692    pub const G: Self = Self((0x00000067 as Uint32));
693    /// 'h'
694    pub const H: Self = Self((0x00000068 as Uint32));
695    /// 'i'
696    pub const I: Self = Self((0x00000069 as Uint32));
697    /// 'j'
698    pub const J: Self = Self((0x0000006a as Uint32));
699    /// 'k'
700    pub const K: Self = Self((0x0000006b as Uint32));
701    /// 'l'
702    pub const L: Self = Self((0x0000006c as Uint32));
703    /// 'm'
704    pub const M: Self = Self((0x0000006d as Uint32));
705    /// 'n'
706    pub const N: Self = Self((0x0000006e as Uint32));
707    /// 'o'
708    pub const O: Self = Self((0x0000006f as Uint32));
709    /// 'p'
710    pub const P: Self = Self((0x00000070 as Uint32));
711    /// 'q'
712    pub const Q: Self = Self((0x00000071 as Uint32));
713    /// 'r'
714    pub const R: Self = Self((0x00000072 as Uint32));
715    /// 's'
716    pub const S: Self = Self((0x00000073 as Uint32));
717    /// 't'
718    pub const T: Self = Self((0x00000074 as Uint32));
719    /// 'u'
720    pub const U: Self = Self((0x00000075 as Uint32));
721    /// 'v'
722    pub const V: Self = Self((0x00000076 as Uint32));
723    /// 'w'
724    pub const W: Self = Self((0x00000077 as Uint32));
725    /// 'x'
726    pub const X: Self = Self((0x00000078 as Uint32));
727    /// 'y'
728    pub const Y: Self = Self((0x00000079 as Uint32));
729    /// 'z'
730    pub const Z: Self = Self((0x0000007a as Uint32));
731    /// '{'
732    pub const LEFTBRACE: Self = Self((0x0000007b as Uint32));
733    /// '|'
734    pub const PIPE: Self = Self((0x0000007c as Uint32));
735    /// '}'
736    pub const RIGHTBRACE: Self = Self((0x0000007d as Uint32));
737    /// '~'
738    pub const TILDE: Self = Self((0x0000007e as Uint32));
739    /// '\x7F'
740    pub const DELETE: Self = Self((0x0000007f as Uint32));
741    /// '\xB1'
742    pub const PLUSMINUS: Self = Self((0x000000b1 as Uint32));
743    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CAPSLOCK`])
744    pub const CAPSLOCK: Self = Self((0x40000039 as Uint32));
745    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F1`])
746    pub const F1: Self = Self((0x4000003a as Uint32));
747    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F2`])
748    pub const F2: Self = Self((0x4000003b as Uint32));
749    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F3`])
750    pub const F3: Self = Self((0x4000003c as Uint32));
751    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F4`])
752    pub const F4: Self = Self((0x4000003d as Uint32));
753    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F5`])
754    pub const F5: Self = Self((0x4000003e as Uint32));
755    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F6`])
756    pub const F6: Self = Self((0x4000003f as Uint32));
757    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F7`])
758    pub const F7: Self = Self((0x40000040 as Uint32));
759    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F8`])
760    pub const F8: Self = Self((0x40000041 as Uint32));
761    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F9`])
762    pub const F9: Self = Self((0x40000042 as Uint32));
763    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F10`])
764    pub const F10: Self = Self((0x40000043 as Uint32));
765    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F11`])
766    pub const F11: Self = Self((0x40000044 as Uint32));
767    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F12`])
768    pub const F12: Self = Self((0x40000045 as Uint32));
769    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PRINTSCREEN`])
770    pub const PRINTSCREEN: Self = Self((0x40000046 as Uint32));
771    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SCROLLLOCK`])
772    pub const SCROLLLOCK: Self = Self((0x40000047 as Uint32));
773    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAUSE`])
774    pub const PAUSE: Self = Self((0x40000048 as Uint32));
775    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_INSERT`])
776    pub const INSERT: Self = Self((0x40000049 as Uint32));
777    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_HOME`])
778    pub const HOME: Self = Self((0x4000004a as Uint32));
779    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAGEUP`])
780    pub const PAGEUP: Self = Self((0x4000004b as Uint32));
781    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_END`])
782    pub const END: Self = Self((0x4000004d as Uint32));
783    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAGEDOWN`])
784    pub const PAGEDOWN: Self = Self((0x4000004e as Uint32));
785    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RIGHT`])
786    pub const RIGHT: Self = Self((0x4000004f as Uint32));
787    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LEFT`])
788    pub const LEFT: Self = Self((0x40000050 as Uint32));
789    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_DOWN`])
790    pub const DOWN: Self = Self((0x40000051 as Uint32));
791    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_UP`])
792    pub const UP: Self = Self((0x40000052 as Uint32));
793    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_NUMLOCKCLEAR`])
794    pub const NUMLOCKCLEAR: Self = Self((0x40000053 as Uint32));
795    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DIVIDE`])
796    pub const KP_DIVIDE: Self = Self((0x40000054 as Uint32));
797    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MULTIPLY`])
798    pub const KP_MULTIPLY: Self = Self((0x40000055 as Uint32));
799    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MINUS`])
800    pub const KP_MINUS: Self = Self((0x40000056 as Uint32));
801    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PLUS`])
802    pub const KP_PLUS: Self = Self((0x40000057 as Uint32));
803    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_ENTER`])
804    pub const KP_ENTER: Self = Self((0x40000058 as Uint32));
805    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_1`])
806    pub const KP_1: Self = Self((0x40000059 as Uint32));
807    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_2`])
808    pub const KP_2: Self = Self((0x4000005a as Uint32));
809    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_3`])
810    pub const KP_3: Self = Self((0x4000005b as Uint32));
811    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_4`])
812    pub const KP_4: Self = Self((0x4000005c as Uint32));
813    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_5`])
814    pub const KP_5: Self = Self((0x4000005d as Uint32));
815    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_6`])
816    pub const KP_6: Self = Self((0x4000005e as Uint32));
817    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_7`])
818    pub const KP_7: Self = Self((0x4000005f as Uint32));
819    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_8`])
820    pub const KP_8: Self = Self((0x40000060 as Uint32));
821    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_9`])
822    pub const KP_9: Self = Self((0x40000061 as Uint32));
823    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_0`])
824    pub const KP_0: Self = Self((0x40000062 as Uint32));
825    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PERIOD`])
826    pub const KP_PERIOD: Self = Self((0x40000063 as Uint32));
827    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_APPLICATION`])
828    pub const APPLICATION: Self = Self((0x40000065 as Uint32));
829    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_POWER`])
830    pub const POWER: Self = Self((0x40000066 as Uint32));
831    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EQUALS`])
832    pub const KP_EQUALS: Self = Self((0x40000067 as Uint32));
833    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F13`])
834    pub const F13: Self = Self((0x40000068 as Uint32));
835    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F14`])
836    pub const F14: Self = Self((0x40000069 as Uint32));
837    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F15`])
838    pub const F15: Self = Self((0x4000006a as Uint32));
839    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F16`])
840    pub const F16: Self = Self((0x4000006b as Uint32));
841    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F17`])
842    pub const F17: Self = Self((0x4000006c as Uint32));
843    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F18`])
844    pub const F18: Self = Self((0x4000006d as Uint32));
845    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F19`])
846    pub const F19: Self = Self((0x4000006e as Uint32));
847    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F20`])
848    pub const F20: Self = Self((0x4000006f as Uint32));
849    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F21`])
850    pub const F21: Self = Self((0x40000070 as Uint32));
851    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F22`])
852    pub const F22: Self = Self((0x40000071 as Uint32));
853    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F23`])
854    pub const F23: Self = Self((0x40000072 as Uint32));
855    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F24`])
856    pub const F24: Self = Self((0x40000073 as Uint32));
857    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_EXECUTE`])
858    pub const EXECUTE: Self = Self((0x40000074 as Uint32));
859    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_HELP`])
860    pub const HELP: Self = Self((0x40000075 as Uint32));
861    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MENU`])
862    pub const MENU: Self = Self((0x40000076 as Uint32));
863    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SELECT`])
864    pub const SELECT: Self = Self((0x40000077 as Uint32));
865    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_STOP`])
866    pub const STOP: Self = Self((0x40000078 as Uint32));
867    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AGAIN`])
868    pub const AGAIN: Self = Self((0x40000079 as Uint32));
869    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_UNDO`])
870    pub const UNDO: Self = Self((0x4000007a as Uint32));
871    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CUT`])
872    pub const CUT: Self = Self((0x4000007b as Uint32));
873    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_COPY`])
874    pub const COPY: Self = Self((0x4000007c as Uint32));
875    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PASTE`])
876    pub const PASTE: Self = Self((0x4000007d as Uint32));
877    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_FIND`])
878    pub const FIND: Self = Self((0x4000007e as Uint32));
879    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MUTE`])
880    pub const MUTE: Self = Self((0x4000007f as Uint32));
881    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_VOLUMEUP`])
882    pub const VOLUMEUP: Self = Self((0x40000080 as Uint32));
883    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_VOLUMEDOWN`])
884    pub const VOLUMEDOWN: Self = Self((0x40000081 as Uint32));
885    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_COMMA`])
886    pub const KP_COMMA: Self = Self((0x40000085 as Uint32));
887    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EQUALSAS400`])
888    pub const KP_EQUALSAS400: Self = Self((0x40000086 as Uint32));
889    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_ALTERASE`])
890    pub const ALTERASE: Self = Self((0x40000099 as Uint32));
891    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SYSREQ`])
892    pub const SYSREQ: Self = Self((0x4000009a as Uint32));
893    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CANCEL`])
894    pub const CANCEL: Self = Self((0x4000009b as Uint32));
895    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CLEAR`])
896    pub const CLEAR: Self = Self((0x4000009c as Uint32));
897    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PRIOR`])
898    pub const PRIOR: Self = Self((0x4000009d as Uint32));
899    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RETURN2`])
900    pub const RETURN2: Self = Self((0x4000009e as Uint32));
901    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SEPARATOR`])
902    pub const SEPARATOR: Self = Self((0x4000009f as Uint32));
903    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_OUT`])
904    pub const OUT: Self = Self((0x400000a0 as Uint32));
905    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_OPER`])
906    pub const OPER: Self = Self((0x400000a1 as Uint32));
907    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CLEARAGAIN`])
908    pub const CLEARAGAIN: Self = Self((0x400000a2 as Uint32));
909    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CRSEL`])
910    pub const CRSEL: Self = Self((0x400000a3 as Uint32));
911    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_EXSEL`])
912    pub const EXSEL: Self = Self((0x400000a4 as Uint32));
913    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_00`])
914    pub const KP_00: Self = Self((0x400000b0 as Uint32));
915    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_000`])
916    pub const KP_000: Self = Self((0x400000b1 as Uint32));
917    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_THOUSANDSSEPARATOR`])
918    pub const THOUSANDSSEPARATOR: Self = Self((0x400000b2 as Uint32));
919    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_DECIMALSEPARATOR`])
920    pub const DECIMALSEPARATOR: Self = Self((0x400000b3 as Uint32));
921    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CURRENCYUNIT`])
922    pub const CURRENCYUNIT: Self = Self((0x400000b4 as Uint32));
923    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CURRENCYSUBUNIT`])
924    pub const CURRENCYSUBUNIT: Self = Self((0x400000b5 as Uint32));
925    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LEFTPAREN`])
926    pub const KP_LEFTPAREN: Self = Self((0x400000b6 as Uint32));
927    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_RIGHTPAREN`])
928    pub const KP_RIGHTPAREN: Self = Self((0x400000b7 as Uint32));
929    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LEFTBRACE`])
930    pub const KP_LEFTBRACE: Self = Self((0x400000b8 as Uint32));
931    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_RIGHTBRACE`])
932    pub const KP_RIGHTBRACE: Self = Self((0x400000b9 as Uint32));
933    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_TAB`])
934    pub const KP_TAB: Self = Self((0x400000ba as Uint32));
935    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_BACKSPACE`])
936    pub const KP_BACKSPACE: Self = Self((0x400000bb as Uint32));
937    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_A`])
938    pub const KP_A: Self = Self((0x400000bc as Uint32));
939    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_B`])
940    pub const KP_B: Self = Self((0x400000bd as Uint32));
941    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_C`])
942    pub const KP_C: Self = Self((0x400000be as Uint32));
943    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_D`])
944    pub const KP_D: Self = Self((0x400000bf as Uint32));
945    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_E`])
946    pub const KP_E: Self = Self((0x400000c0 as Uint32));
947    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_F`])
948    pub const KP_F: Self = Self((0x400000c1 as Uint32));
949    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_XOR`])
950    pub const KP_XOR: Self = Self((0x400000c2 as Uint32));
951    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_POWER`])
952    pub const KP_POWER: Self = Self((0x400000c3 as Uint32));
953    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PERCENT`])
954    pub const KP_PERCENT: Self = Self((0x400000c4 as Uint32));
955    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LESS`])
956    pub const KP_LESS: Self = Self((0x400000c5 as Uint32));
957    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_GREATER`])
958    pub const KP_GREATER: Self = Self((0x400000c6 as Uint32));
959    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_AMPERSAND`])
960    pub const KP_AMPERSAND: Self = Self((0x400000c7 as Uint32));
961    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DBLAMPERSAND`])
962    pub const KP_DBLAMPERSAND: Self = Self((0x400000c8 as Uint32));
963    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_VERTICALBAR`])
964    pub const KP_VERTICALBAR: Self = Self((0x400000c9 as Uint32));
965    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DBLVERTICALBAR`])
966    pub const KP_DBLVERTICALBAR: Self = Self((0x400000ca as Uint32));
967    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_COLON`])
968    pub const KP_COLON: Self = Self((0x400000cb as Uint32));
969    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_HASH`])
970    pub const KP_HASH: Self = Self((0x400000cc as Uint32));
971    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_SPACE`])
972    pub const KP_SPACE: Self = Self((0x400000cd as Uint32));
973    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_AT`])
974    pub const KP_AT: Self = Self((0x400000ce as Uint32));
975    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EXCLAM`])
976    pub const KP_EXCLAM: Self = Self((0x400000cf as Uint32));
977    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMSTORE`])
978    pub const KP_MEMSTORE: Self = Self((0x400000d0 as Uint32));
979    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMRECALL`])
980    pub const KP_MEMRECALL: Self = Self((0x400000d1 as Uint32));
981    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMCLEAR`])
982    pub const KP_MEMCLEAR: Self = Self((0x400000d2 as Uint32));
983    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMADD`])
984    pub const KP_MEMADD: Self = Self((0x400000d3 as Uint32));
985    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMSUBTRACT`])
986    pub const KP_MEMSUBTRACT: Self = Self((0x400000d4 as Uint32));
987    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMMULTIPLY`])
988    pub const KP_MEMMULTIPLY: Self = Self((0x400000d5 as Uint32));
989    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMDIVIDE`])
990    pub const KP_MEMDIVIDE: Self = Self((0x400000d6 as Uint32));
991    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PLUSMINUS`])
992    pub const KP_PLUSMINUS: Self = Self((0x400000d7 as Uint32));
993    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_CLEAR`])
994    pub const KP_CLEAR: Self = Self((0x400000d8 as Uint32));
995    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_CLEARENTRY`])
996    pub const KP_CLEARENTRY: Self = Self((0x400000d9 as Uint32));
997    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_BINARY`])
998    pub const KP_BINARY: Self = Self((0x400000da as Uint32));
999    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_OCTAL`])
1000    pub const KP_OCTAL: Self = Self((0x400000db as Uint32));
1001    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DECIMAL`])
1002    pub const KP_DECIMAL: Self = Self((0x400000dc as Uint32));
1003    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_HEXADECIMAL`])
1004    pub const KP_HEXADECIMAL: Self = Self((0x400000dd as Uint32));
1005    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LCTRL`])
1006    pub const LCTRL: Self = Self((0x400000e0 as Uint32));
1007    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LSHIFT`])
1008    pub const LSHIFT: Self = Self((0x400000e1 as Uint32));
1009    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LALT`])
1010    pub const LALT: Self = Self((0x400000e2 as Uint32));
1011    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LGUI`])
1012    pub const LGUI: Self = Self((0x400000e3 as Uint32));
1013    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RCTRL`])
1014    pub const RCTRL: Self = Self((0x400000e4 as Uint32));
1015    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RSHIFT`])
1016    pub const RSHIFT: Self = Self((0x400000e5 as Uint32));
1017    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RALT`])
1018    pub const RALT: Self = Self((0x400000e6 as Uint32));
1019    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RGUI`])
1020    pub const RGUI: Self = Self((0x400000e7 as Uint32));
1021    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MODE`])
1022    pub const MODE: Self = Self((0x40000101 as Uint32));
1023    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SLEEP`])
1024    pub const SLEEP: Self = Self((0x40000102 as Uint32));
1025    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_WAKE`])
1026    pub const WAKE: Self = Self((0x40000103 as Uint32));
1027    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CHANNEL_INCREMENT`])
1028    pub const CHANNEL_INCREMENT: Self = Self((0x40000104 as Uint32));
1029    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CHANNEL_DECREMENT`])
1030    pub const CHANNEL_DECREMENT: Self = Self((0x40000105 as Uint32));
1031    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PLAY`])
1032    pub const MEDIA_PLAY: Self = Self((0x40000106 as Uint32));
1033    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PAUSE`])
1034    pub const MEDIA_PAUSE: Self = Self((0x40000107 as Uint32));
1035    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_RECORD`])
1036    pub const MEDIA_RECORD: Self = Self((0x40000108 as Uint32));
1037    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_FAST_FORWARD`])
1038    pub const MEDIA_FAST_FORWARD: Self = Self((0x40000109 as Uint32));
1039    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_REWIND`])
1040    pub const MEDIA_REWIND: Self = Self((0x4000010a as Uint32));
1041    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_NEXT_TRACK`])
1042    pub const MEDIA_NEXT_TRACK: Self = Self((0x4000010b as Uint32));
1043    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PREVIOUS_TRACK`])
1044    pub const MEDIA_PREVIOUS_TRACK: Self = Self((0x4000010c as Uint32));
1045    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_STOP`])
1046    pub const MEDIA_STOP: Self = Self((0x4000010d as Uint32));
1047    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_EJECT`])
1048    pub const MEDIA_EJECT: Self = Self((0x4000010e as Uint32));
1049    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PLAY_PAUSE`])
1050    pub const MEDIA_PLAY_PAUSE: Self = Self((0x4000010f as Uint32));
1051    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_SELECT`])
1052    pub const MEDIA_SELECT: Self = Self((0x40000110 as Uint32));
1053    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_NEW`])
1054    pub const AC_NEW: Self = Self((0x40000111 as Uint32));
1055    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_OPEN`])
1056    pub const AC_OPEN: Self = Self((0x40000112 as Uint32));
1057    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_CLOSE`])
1058    pub const AC_CLOSE: Self = Self((0x40000113 as Uint32));
1059    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_EXIT`])
1060    pub const AC_EXIT: Self = Self((0x40000114 as Uint32));
1061    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_SAVE`])
1062    pub const AC_SAVE: Self = Self((0x40000115 as Uint32));
1063    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_PRINT`])
1064    pub const AC_PRINT: Self = Self((0x40000116 as Uint32));
1065    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_PROPERTIES`])
1066    pub const AC_PROPERTIES: Self = Self((0x40000117 as Uint32));
1067    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_SEARCH`])
1068    pub const AC_SEARCH: Self = Self((0x40000118 as Uint32));
1069    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_HOME`])
1070    pub const AC_HOME: Self = Self((0x40000119 as Uint32));
1071    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_BACK`])
1072    pub const AC_BACK: Self = Self((0x4000011a as Uint32));
1073    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_FORWARD`])
1074    pub const AC_FORWARD: Self = Self((0x4000011b as Uint32));
1075    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_STOP`])
1076    pub const AC_STOP: Self = Self((0x4000011c as Uint32));
1077    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_REFRESH`])
1078    pub const AC_REFRESH: Self = Self((0x4000011d as Uint32));
1079    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_BOOKMARKS`])
1080    pub const AC_BOOKMARKS: Self = Self((0x4000011e as Uint32));
1081    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SOFTLEFT`])
1082    pub const SOFTLEFT: Self = Self((0x4000011f as Uint32));
1083    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SOFTRIGHT`])
1084    pub const SOFTRIGHT: Self = Self((0x40000120 as Uint32));
1085    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CALL`])
1086    pub const CALL: Self = Self((0x40000121 as Uint32));
1087    /// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_ENDCALL`])
1088    pub const ENDCALL: Self = Self((0x40000122 as Uint32));
1089    /// Extended key Left Tab
1090    pub const LEFT_TAB: Self = Self((0x20000001 as Uint32));
1091    /// Extended key Level 5 Shift
1092    pub const LEVEL5_SHIFT: Self = Self((0x20000002 as Uint32));
1093    /// Extended key Multi-key Compose
1094    pub const MULTI_KEY_COMPOSE: Self = Self((0x20000003 as Uint32));
1095    /// Extended key Left Meta
1096    pub const LMETA: Self = Self((0x20000004 as Uint32));
1097    /// Extended key Right Meta
1098    pub const RMETA: Self = Self((0x20000005 as Uint32));
1099    /// Extended key Left Hyper
1100    pub const LHYPER: Self = Self((0x20000006 as Uint32));
1101    /// Extended key Right Hyper
1102    pub const RHYPER: Self = Self((0x20000007 as Uint32));
1103}
1104
1105pub const SDLK_EXTENDED_MASK: SDL_Keycode = SDL_Keycode::EXTENDED_MASK;
1106pub const SDLK_SCANCODE_MASK: SDL_Keycode = SDL_Keycode::SCANCODE_MASK;
1107/// 0
1108pub const SDLK_UNKNOWN: SDL_Keycode = SDL_Keycode::UNKNOWN;
1109/// '\r'
1110pub const SDLK_RETURN: SDL_Keycode = SDL_Keycode::RETURN;
1111/// '\x1B'
1112pub const SDLK_ESCAPE: SDL_Keycode = SDL_Keycode::ESCAPE;
1113/// '\b'
1114pub const SDLK_BACKSPACE: SDL_Keycode = SDL_Keycode::BACKSPACE;
1115/// '\t'
1116pub const SDLK_TAB: SDL_Keycode = SDL_Keycode::TAB;
1117/// ' '
1118pub const SDLK_SPACE: SDL_Keycode = SDL_Keycode::SPACE;
1119/// '!'
1120pub const SDLK_EXCLAIM: SDL_Keycode = SDL_Keycode::EXCLAIM;
1121/// '"'
1122pub const SDLK_DBLAPOSTROPHE: SDL_Keycode = SDL_Keycode::DBLAPOSTROPHE;
1123/// '#'
1124pub const SDLK_HASH: SDL_Keycode = SDL_Keycode::HASH;
1125/// '$'
1126pub const SDLK_DOLLAR: SDL_Keycode = SDL_Keycode::DOLLAR;
1127/// '%'
1128pub const SDLK_PERCENT: SDL_Keycode = SDL_Keycode::PERCENT;
1129/// '&'
1130pub const SDLK_AMPERSAND: SDL_Keycode = SDL_Keycode::AMPERSAND;
1131/// '\''
1132pub const SDLK_APOSTROPHE: SDL_Keycode = SDL_Keycode::APOSTROPHE;
1133/// '('
1134pub const SDLK_LEFTPAREN: SDL_Keycode = SDL_Keycode::LEFTPAREN;
1135/// ')'
1136pub const SDLK_RIGHTPAREN: SDL_Keycode = SDL_Keycode::RIGHTPAREN;
1137/// '*'
1138pub const SDLK_ASTERISK: SDL_Keycode = SDL_Keycode::ASTERISK;
1139/// '+'
1140pub const SDLK_PLUS: SDL_Keycode = SDL_Keycode::PLUS;
1141/// ','
1142pub const SDLK_COMMA: SDL_Keycode = SDL_Keycode::COMMA;
1143/// '-'
1144pub const SDLK_MINUS: SDL_Keycode = SDL_Keycode::MINUS;
1145/// '.'
1146pub const SDLK_PERIOD: SDL_Keycode = SDL_Keycode::PERIOD;
1147/// '/'
1148pub const SDLK_SLASH: SDL_Keycode = SDL_Keycode::SLASH;
1149/// '0'
1150pub const SDLK_0: SDL_Keycode = SDL_Keycode::_0;
1151/// '1'
1152pub const SDLK_1: SDL_Keycode = SDL_Keycode::_1;
1153/// '2'
1154pub const SDLK_2: SDL_Keycode = SDL_Keycode::_2;
1155/// '3'
1156pub const SDLK_3: SDL_Keycode = SDL_Keycode::_3;
1157/// '4'
1158pub const SDLK_4: SDL_Keycode = SDL_Keycode::_4;
1159/// '5'
1160pub const SDLK_5: SDL_Keycode = SDL_Keycode::_5;
1161/// '6'
1162pub const SDLK_6: SDL_Keycode = SDL_Keycode::_6;
1163/// '7'
1164pub const SDLK_7: SDL_Keycode = SDL_Keycode::_7;
1165/// '8'
1166pub const SDLK_8: SDL_Keycode = SDL_Keycode::_8;
1167/// '9'
1168pub const SDLK_9: SDL_Keycode = SDL_Keycode::_9;
1169/// ':'
1170pub const SDLK_COLON: SDL_Keycode = SDL_Keycode::COLON;
1171/// ';'
1172pub const SDLK_SEMICOLON: SDL_Keycode = SDL_Keycode::SEMICOLON;
1173/// '<'
1174pub const SDLK_LESS: SDL_Keycode = SDL_Keycode::LESS;
1175/// '='
1176pub const SDLK_EQUALS: SDL_Keycode = SDL_Keycode::EQUALS;
1177/// '>'
1178pub const SDLK_GREATER: SDL_Keycode = SDL_Keycode::GREATER;
1179/// '?'
1180pub const SDLK_QUESTION: SDL_Keycode = SDL_Keycode::QUESTION;
1181/// '@'
1182pub const SDLK_AT: SDL_Keycode = SDL_Keycode::AT;
1183/// '['
1184pub const SDLK_LEFTBRACKET: SDL_Keycode = SDL_Keycode::LEFTBRACKET;
1185/// '\\'
1186pub const SDLK_BACKSLASH: SDL_Keycode = SDL_Keycode::BACKSLASH;
1187/// ']'
1188pub const SDLK_RIGHTBRACKET: SDL_Keycode = SDL_Keycode::RIGHTBRACKET;
1189/// '^'
1190pub const SDLK_CARET: SDL_Keycode = SDL_Keycode::CARET;
1191/// '_'
1192pub const SDLK_UNDERSCORE: SDL_Keycode = SDL_Keycode::UNDERSCORE;
1193/// '`'
1194pub const SDLK_GRAVE: SDL_Keycode = SDL_Keycode::GRAVE;
1195/// 'a'
1196pub const SDLK_A: SDL_Keycode = SDL_Keycode::A;
1197/// 'b'
1198pub const SDLK_B: SDL_Keycode = SDL_Keycode::B;
1199/// 'c'
1200pub const SDLK_C: SDL_Keycode = SDL_Keycode::C;
1201/// 'd'
1202pub const SDLK_D: SDL_Keycode = SDL_Keycode::D;
1203/// 'e'
1204pub const SDLK_E: SDL_Keycode = SDL_Keycode::E;
1205/// 'f'
1206pub const SDLK_F: SDL_Keycode = SDL_Keycode::F;
1207/// 'g'
1208pub const SDLK_G: SDL_Keycode = SDL_Keycode::G;
1209/// 'h'
1210pub const SDLK_H: SDL_Keycode = SDL_Keycode::H;
1211/// 'i'
1212pub const SDLK_I: SDL_Keycode = SDL_Keycode::I;
1213/// 'j'
1214pub const SDLK_J: SDL_Keycode = SDL_Keycode::J;
1215/// 'k'
1216pub const SDLK_K: SDL_Keycode = SDL_Keycode::K;
1217/// 'l'
1218pub const SDLK_L: SDL_Keycode = SDL_Keycode::L;
1219/// 'm'
1220pub const SDLK_M: SDL_Keycode = SDL_Keycode::M;
1221/// 'n'
1222pub const SDLK_N: SDL_Keycode = SDL_Keycode::N;
1223/// 'o'
1224pub const SDLK_O: SDL_Keycode = SDL_Keycode::O;
1225/// 'p'
1226pub const SDLK_P: SDL_Keycode = SDL_Keycode::P;
1227/// 'q'
1228pub const SDLK_Q: SDL_Keycode = SDL_Keycode::Q;
1229/// 'r'
1230pub const SDLK_R: SDL_Keycode = SDL_Keycode::R;
1231/// 's'
1232pub const SDLK_S: SDL_Keycode = SDL_Keycode::S;
1233/// 't'
1234pub const SDLK_T: SDL_Keycode = SDL_Keycode::T;
1235/// 'u'
1236pub const SDLK_U: SDL_Keycode = SDL_Keycode::U;
1237/// 'v'
1238pub const SDLK_V: SDL_Keycode = SDL_Keycode::V;
1239/// 'w'
1240pub const SDLK_W: SDL_Keycode = SDL_Keycode::W;
1241/// 'x'
1242pub const SDLK_X: SDL_Keycode = SDL_Keycode::X;
1243/// 'y'
1244pub const SDLK_Y: SDL_Keycode = SDL_Keycode::Y;
1245/// 'z'
1246pub const SDLK_Z: SDL_Keycode = SDL_Keycode::Z;
1247/// '{'
1248pub const SDLK_LEFTBRACE: SDL_Keycode = SDL_Keycode::LEFTBRACE;
1249/// '|'
1250pub const SDLK_PIPE: SDL_Keycode = SDL_Keycode::PIPE;
1251/// '}'
1252pub const SDLK_RIGHTBRACE: SDL_Keycode = SDL_Keycode::RIGHTBRACE;
1253/// '~'
1254pub const SDLK_TILDE: SDL_Keycode = SDL_Keycode::TILDE;
1255/// '\x7F'
1256pub const SDLK_DELETE: SDL_Keycode = SDL_Keycode::DELETE;
1257/// '\xB1'
1258pub const SDLK_PLUSMINUS: SDL_Keycode = SDL_Keycode::PLUSMINUS;
1259/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CAPSLOCK`])
1260pub const SDLK_CAPSLOCK: SDL_Keycode = SDL_Keycode::CAPSLOCK;
1261/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F1`])
1262pub const SDLK_F1: SDL_Keycode = SDL_Keycode::F1;
1263/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F2`])
1264pub const SDLK_F2: SDL_Keycode = SDL_Keycode::F2;
1265/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F3`])
1266pub const SDLK_F3: SDL_Keycode = SDL_Keycode::F3;
1267/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F4`])
1268pub const SDLK_F4: SDL_Keycode = SDL_Keycode::F4;
1269/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F5`])
1270pub const SDLK_F5: SDL_Keycode = SDL_Keycode::F5;
1271/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F6`])
1272pub const SDLK_F6: SDL_Keycode = SDL_Keycode::F6;
1273/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F7`])
1274pub const SDLK_F7: SDL_Keycode = SDL_Keycode::F7;
1275/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F8`])
1276pub const SDLK_F8: SDL_Keycode = SDL_Keycode::F8;
1277/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F9`])
1278pub const SDLK_F9: SDL_Keycode = SDL_Keycode::F9;
1279/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F10`])
1280pub const SDLK_F10: SDL_Keycode = SDL_Keycode::F10;
1281/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F11`])
1282pub const SDLK_F11: SDL_Keycode = SDL_Keycode::F11;
1283/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F12`])
1284pub const SDLK_F12: SDL_Keycode = SDL_Keycode::F12;
1285/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PRINTSCREEN`])
1286pub const SDLK_PRINTSCREEN: SDL_Keycode = SDL_Keycode::PRINTSCREEN;
1287/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SCROLLLOCK`])
1288pub const SDLK_SCROLLLOCK: SDL_Keycode = SDL_Keycode::SCROLLLOCK;
1289/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAUSE`])
1290pub const SDLK_PAUSE: SDL_Keycode = SDL_Keycode::PAUSE;
1291/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_INSERT`])
1292pub const SDLK_INSERT: SDL_Keycode = SDL_Keycode::INSERT;
1293/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_HOME`])
1294pub const SDLK_HOME: SDL_Keycode = SDL_Keycode::HOME;
1295/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAGEUP`])
1296pub const SDLK_PAGEUP: SDL_Keycode = SDL_Keycode::PAGEUP;
1297/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_END`])
1298pub const SDLK_END: SDL_Keycode = SDL_Keycode::END;
1299/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PAGEDOWN`])
1300pub const SDLK_PAGEDOWN: SDL_Keycode = SDL_Keycode::PAGEDOWN;
1301/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RIGHT`])
1302pub const SDLK_RIGHT: SDL_Keycode = SDL_Keycode::RIGHT;
1303/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LEFT`])
1304pub const SDLK_LEFT: SDL_Keycode = SDL_Keycode::LEFT;
1305/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_DOWN`])
1306pub const SDLK_DOWN: SDL_Keycode = SDL_Keycode::DOWN;
1307/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_UP`])
1308pub const SDLK_UP: SDL_Keycode = SDL_Keycode::UP;
1309/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_NUMLOCKCLEAR`])
1310pub const SDLK_NUMLOCKCLEAR: SDL_Keycode = SDL_Keycode::NUMLOCKCLEAR;
1311/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DIVIDE`])
1312pub const SDLK_KP_DIVIDE: SDL_Keycode = SDL_Keycode::KP_DIVIDE;
1313/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MULTIPLY`])
1314pub const SDLK_KP_MULTIPLY: SDL_Keycode = SDL_Keycode::KP_MULTIPLY;
1315/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MINUS`])
1316pub const SDLK_KP_MINUS: SDL_Keycode = SDL_Keycode::KP_MINUS;
1317/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PLUS`])
1318pub const SDLK_KP_PLUS: SDL_Keycode = SDL_Keycode::KP_PLUS;
1319/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_ENTER`])
1320pub const SDLK_KP_ENTER: SDL_Keycode = SDL_Keycode::KP_ENTER;
1321/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_1`])
1322pub const SDLK_KP_1: SDL_Keycode = SDL_Keycode::KP_1;
1323/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_2`])
1324pub const SDLK_KP_2: SDL_Keycode = SDL_Keycode::KP_2;
1325/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_3`])
1326pub const SDLK_KP_3: SDL_Keycode = SDL_Keycode::KP_3;
1327/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_4`])
1328pub const SDLK_KP_4: SDL_Keycode = SDL_Keycode::KP_4;
1329/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_5`])
1330pub const SDLK_KP_5: SDL_Keycode = SDL_Keycode::KP_5;
1331/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_6`])
1332pub const SDLK_KP_6: SDL_Keycode = SDL_Keycode::KP_6;
1333/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_7`])
1334pub const SDLK_KP_7: SDL_Keycode = SDL_Keycode::KP_7;
1335/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_8`])
1336pub const SDLK_KP_8: SDL_Keycode = SDL_Keycode::KP_8;
1337/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_9`])
1338pub const SDLK_KP_9: SDL_Keycode = SDL_Keycode::KP_9;
1339/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_0`])
1340pub const SDLK_KP_0: SDL_Keycode = SDL_Keycode::KP_0;
1341/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PERIOD`])
1342pub const SDLK_KP_PERIOD: SDL_Keycode = SDL_Keycode::KP_PERIOD;
1343/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_APPLICATION`])
1344pub const SDLK_APPLICATION: SDL_Keycode = SDL_Keycode::APPLICATION;
1345/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_POWER`])
1346pub const SDLK_POWER: SDL_Keycode = SDL_Keycode::POWER;
1347/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EQUALS`])
1348pub const SDLK_KP_EQUALS: SDL_Keycode = SDL_Keycode::KP_EQUALS;
1349/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F13`])
1350pub const SDLK_F13: SDL_Keycode = SDL_Keycode::F13;
1351/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F14`])
1352pub const SDLK_F14: SDL_Keycode = SDL_Keycode::F14;
1353/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F15`])
1354pub const SDLK_F15: SDL_Keycode = SDL_Keycode::F15;
1355/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F16`])
1356pub const SDLK_F16: SDL_Keycode = SDL_Keycode::F16;
1357/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F17`])
1358pub const SDLK_F17: SDL_Keycode = SDL_Keycode::F17;
1359/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F18`])
1360pub const SDLK_F18: SDL_Keycode = SDL_Keycode::F18;
1361/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F19`])
1362pub const SDLK_F19: SDL_Keycode = SDL_Keycode::F19;
1363/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F20`])
1364pub const SDLK_F20: SDL_Keycode = SDL_Keycode::F20;
1365/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F21`])
1366pub const SDLK_F21: SDL_Keycode = SDL_Keycode::F21;
1367/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F22`])
1368pub const SDLK_F22: SDL_Keycode = SDL_Keycode::F22;
1369/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F23`])
1370pub const SDLK_F23: SDL_Keycode = SDL_Keycode::F23;
1371/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_F24`])
1372pub const SDLK_F24: SDL_Keycode = SDL_Keycode::F24;
1373/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_EXECUTE`])
1374pub const SDLK_EXECUTE: SDL_Keycode = SDL_Keycode::EXECUTE;
1375/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_HELP`])
1376pub const SDLK_HELP: SDL_Keycode = SDL_Keycode::HELP;
1377/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MENU`])
1378pub const SDLK_MENU: SDL_Keycode = SDL_Keycode::MENU;
1379/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SELECT`])
1380pub const SDLK_SELECT: SDL_Keycode = SDL_Keycode::SELECT;
1381/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_STOP`])
1382pub const SDLK_STOP: SDL_Keycode = SDL_Keycode::STOP;
1383/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AGAIN`])
1384pub const SDLK_AGAIN: SDL_Keycode = SDL_Keycode::AGAIN;
1385/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_UNDO`])
1386pub const SDLK_UNDO: SDL_Keycode = SDL_Keycode::UNDO;
1387/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CUT`])
1388pub const SDLK_CUT: SDL_Keycode = SDL_Keycode::CUT;
1389/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_COPY`])
1390pub const SDLK_COPY: SDL_Keycode = SDL_Keycode::COPY;
1391/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PASTE`])
1392pub const SDLK_PASTE: SDL_Keycode = SDL_Keycode::PASTE;
1393/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_FIND`])
1394pub const SDLK_FIND: SDL_Keycode = SDL_Keycode::FIND;
1395/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MUTE`])
1396pub const SDLK_MUTE: SDL_Keycode = SDL_Keycode::MUTE;
1397/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_VOLUMEUP`])
1398pub const SDLK_VOLUMEUP: SDL_Keycode = SDL_Keycode::VOLUMEUP;
1399/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_VOLUMEDOWN`])
1400pub const SDLK_VOLUMEDOWN: SDL_Keycode = SDL_Keycode::VOLUMEDOWN;
1401/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_COMMA`])
1402pub const SDLK_KP_COMMA: SDL_Keycode = SDL_Keycode::KP_COMMA;
1403/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EQUALSAS400`])
1404pub const SDLK_KP_EQUALSAS400: SDL_Keycode = SDL_Keycode::KP_EQUALSAS400;
1405/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_ALTERASE`])
1406pub const SDLK_ALTERASE: SDL_Keycode = SDL_Keycode::ALTERASE;
1407/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SYSREQ`])
1408pub const SDLK_SYSREQ: SDL_Keycode = SDL_Keycode::SYSREQ;
1409/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CANCEL`])
1410pub const SDLK_CANCEL: SDL_Keycode = SDL_Keycode::CANCEL;
1411/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CLEAR`])
1412pub const SDLK_CLEAR: SDL_Keycode = SDL_Keycode::CLEAR;
1413/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_PRIOR`])
1414pub const SDLK_PRIOR: SDL_Keycode = SDL_Keycode::PRIOR;
1415/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RETURN2`])
1416pub const SDLK_RETURN2: SDL_Keycode = SDL_Keycode::RETURN2;
1417/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SEPARATOR`])
1418pub const SDLK_SEPARATOR: SDL_Keycode = SDL_Keycode::SEPARATOR;
1419/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_OUT`])
1420pub const SDLK_OUT: SDL_Keycode = SDL_Keycode::OUT;
1421/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_OPER`])
1422pub const SDLK_OPER: SDL_Keycode = SDL_Keycode::OPER;
1423/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CLEARAGAIN`])
1424pub const SDLK_CLEARAGAIN: SDL_Keycode = SDL_Keycode::CLEARAGAIN;
1425/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CRSEL`])
1426pub const SDLK_CRSEL: SDL_Keycode = SDL_Keycode::CRSEL;
1427/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_EXSEL`])
1428pub const SDLK_EXSEL: SDL_Keycode = SDL_Keycode::EXSEL;
1429/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_00`])
1430pub const SDLK_KP_00: SDL_Keycode = SDL_Keycode::KP_00;
1431/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_000`])
1432pub const SDLK_KP_000: SDL_Keycode = SDL_Keycode::KP_000;
1433/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_THOUSANDSSEPARATOR`])
1434pub const SDLK_THOUSANDSSEPARATOR: SDL_Keycode = SDL_Keycode::THOUSANDSSEPARATOR;
1435/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_DECIMALSEPARATOR`])
1436pub const SDLK_DECIMALSEPARATOR: SDL_Keycode = SDL_Keycode::DECIMALSEPARATOR;
1437/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CURRENCYUNIT`])
1438pub const SDLK_CURRENCYUNIT: SDL_Keycode = SDL_Keycode::CURRENCYUNIT;
1439/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CURRENCYSUBUNIT`])
1440pub const SDLK_CURRENCYSUBUNIT: SDL_Keycode = SDL_Keycode::CURRENCYSUBUNIT;
1441/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LEFTPAREN`])
1442pub const SDLK_KP_LEFTPAREN: SDL_Keycode = SDL_Keycode::KP_LEFTPAREN;
1443/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_RIGHTPAREN`])
1444pub const SDLK_KP_RIGHTPAREN: SDL_Keycode = SDL_Keycode::KP_RIGHTPAREN;
1445/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LEFTBRACE`])
1446pub const SDLK_KP_LEFTBRACE: SDL_Keycode = SDL_Keycode::KP_LEFTBRACE;
1447/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_RIGHTBRACE`])
1448pub const SDLK_KP_RIGHTBRACE: SDL_Keycode = SDL_Keycode::KP_RIGHTBRACE;
1449/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_TAB`])
1450pub const SDLK_KP_TAB: SDL_Keycode = SDL_Keycode::KP_TAB;
1451/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_BACKSPACE`])
1452pub const SDLK_KP_BACKSPACE: SDL_Keycode = SDL_Keycode::KP_BACKSPACE;
1453/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_A`])
1454pub const SDLK_KP_A: SDL_Keycode = SDL_Keycode::KP_A;
1455/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_B`])
1456pub const SDLK_KP_B: SDL_Keycode = SDL_Keycode::KP_B;
1457/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_C`])
1458pub const SDLK_KP_C: SDL_Keycode = SDL_Keycode::KP_C;
1459/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_D`])
1460pub const SDLK_KP_D: SDL_Keycode = SDL_Keycode::KP_D;
1461/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_E`])
1462pub const SDLK_KP_E: SDL_Keycode = SDL_Keycode::KP_E;
1463/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_F`])
1464pub const SDLK_KP_F: SDL_Keycode = SDL_Keycode::KP_F;
1465/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_XOR`])
1466pub const SDLK_KP_XOR: SDL_Keycode = SDL_Keycode::KP_XOR;
1467/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_POWER`])
1468pub const SDLK_KP_POWER: SDL_Keycode = SDL_Keycode::KP_POWER;
1469/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PERCENT`])
1470pub const SDLK_KP_PERCENT: SDL_Keycode = SDL_Keycode::KP_PERCENT;
1471/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_LESS`])
1472pub const SDLK_KP_LESS: SDL_Keycode = SDL_Keycode::KP_LESS;
1473/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_GREATER`])
1474pub const SDLK_KP_GREATER: SDL_Keycode = SDL_Keycode::KP_GREATER;
1475/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_AMPERSAND`])
1476pub const SDLK_KP_AMPERSAND: SDL_Keycode = SDL_Keycode::KP_AMPERSAND;
1477/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DBLAMPERSAND`])
1478pub const SDLK_KP_DBLAMPERSAND: SDL_Keycode = SDL_Keycode::KP_DBLAMPERSAND;
1479/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_VERTICALBAR`])
1480pub const SDLK_KP_VERTICALBAR: SDL_Keycode = SDL_Keycode::KP_VERTICALBAR;
1481/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DBLVERTICALBAR`])
1482pub const SDLK_KP_DBLVERTICALBAR: SDL_Keycode = SDL_Keycode::KP_DBLVERTICALBAR;
1483/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_COLON`])
1484pub const SDLK_KP_COLON: SDL_Keycode = SDL_Keycode::KP_COLON;
1485/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_HASH`])
1486pub const SDLK_KP_HASH: SDL_Keycode = SDL_Keycode::KP_HASH;
1487/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_SPACE`])
1488pub const SDLK_KP_SPACE: SDL_Keycode = SDL_Keycode::KP_SPACE;
1489/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_AT`])
1490pub const SDLK_KP_AT: SDL_Keycode = SDL_Keycode::KP_AT;
1491/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_EXCLAM`])
1492pub const SDLK_KP_EXCLAM: SDL_Keycode = SDL_Keycode::KP_EXCLAM;
1493/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMSTORE`])
1494pub const SDLK_KP_MEMSTORE: SDL_Keycode = SDL_Keycode::KP_MEMSTORE;
1495/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMRECALL`])
1496pub const SDLK_KP_MEMRECALL: SDL_Keycode = SDL_Keycode::KP_MEMRECALL;
1497/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMCLEAR`])
1498pub const SDLK_KP_MEMCLEAR: SDL_Keycode = SDL_Keycode::KP_MEMCLEAR;
1499/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMADD`])
1500pub const SDLK_KP_MEMADD: SDL_Keycode = SDL_Keycode::KP_MEMADD;
1501/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMSUBTRACT`])
1502pub const SDLK_KP_MEMSUBTRACT: SDL_Keycode = SDL_Keycode::KP_MEMSUBTRACT;
1503/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMMULTIPLY`])
1504pub const SDLK_KP_MEMMULTIPLY: SDL_Keycode = SDL_Keycode::KP_MEMMULTIPLY;
1505/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_MEMDIVIDE`])
1506pub const SDLK_KP_MEMDIVIDE: SDL_Keycode = SDL_Keycode::KP_MEMDIVIDE;
1507/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_PLUSMINUS`])
1508pub const SDLK_KP_PLUSMINUS: SDL_Keycode = SDL_Keycode::KP_PLUSMINUS;
1509/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_CLEAR`])
1510pub const SDLK_KP_CLEAR: SDL_Keycode = SDL_Keycode::KP_CLEAR;
1511/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_CLEARENTRY`])
1512pub const SDLK_KP_CLEARENTRY: SDL_Keycode = SDL_Keycode::KP_CLEARENTRY;
1513/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_BINARY`])
1514pub const SDLK_KP_BINARY: SDL_Keycode = SDL_Keycode::KP_BINARY;
1515/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_OCTAL`])
1516pub const SDLK_KP_OCTAL: SDL_Keycode = SDL_Keycode::KP_OCTAL;
1517/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_DECIMAL`])
1518pub const SDLK_KP_DECIMAL: SDL_Keycode = SDL_Keycode::KP_DECIMAL;
1519/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_KP_HEXADECIMAL`])
1520pub const SDLK_KP_HEXADECIMAL: SDL_Keycode = SDL_Keycode::KP_HEXADECIMAL;
1521/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LCTRL`])
1522pub const SDLK_LCTRL: SDL_Keycode = SDL_Keycode::LCTRL;
1523/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LSHIFT`])
1524pub const SDLK_LSHIFT: SDL_Keycode = SDL_Keycode::LSHIFT;
1525/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LALT`])
1526pub const SDLK_LALT: SDL_Keycode = SDL_Keycode::LALT;
1527/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_LGUI`])
1528pub const SDLK_LGUI: SDL_Keycode = SDL_Keycode::LGUI;
1529/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RCTRL`])
1530pub const SDLK_RCTRL: SDL_Keycode = SDL_Keycode::RCTRL;
1531/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RSHIFT`])
1532pub const SDLK_RSHIFT: SDL_Keycode = SDL_Keycode::RSHIFT;
1533/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RALT`])
1534pub const SDLK_RALT: SDL_Keycode = SDL_Keycode::RALT;
1535/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_RGUI`])
1536pub const SDLK_RGUI: SDL_Keycode = SDL_Keycode::RGUI;
1537/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MODE`])
1538pub const SDLK_MODE: SDL_Keycode = SDL_Keycode::MODE;
1539/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SLEEP`])
1540pub const SDLK_SLEEP: SDL_Keycode = SDL_Keycode::SLEEP;
1541/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_WAKE`])
1542pub const SDLK_WAKE: SDL_Keycode = SDL_Keycode::WAKE;
1543/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CHANNEL_INCREMENT`])
1544pub const SDLK_CHANNEL_INCREMENT: SDL_Keycode = SDL_Keycode::CHANNEL_INCREMENT;
1545/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CHANNEL_DECREMENT`])
1546pub const SDLK_CHANNEL_DECREMENT: SDL_Keycode = SDL_Keycode::CHANNEL_DECREMENT;
1547/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PLAY`])
1548pub const SDLK_MEDIA_PLAY: SDL_Keycode = SDL_Keycode::MEDIA_PLAY;
1549/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PAUSE`])
1550pub const SDLK_MEDIA_PAUSE: SDL_Keycode = SDL_Keycode::MEDIA_PAUSE;
1551/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_RECORD`])
1552pub const SDLK_MEDIA_RECORD: SDL_Keycode = SDL_Keycode::MEDIA_RECORD;
1553/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_FAST_FORWARD`])
1554pub const SDLK_MEDIA_FAST_FORWARD: SDL_Keycode = SDL_Keycode::MEDIA_FAST_FORWARD;
1555/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_REWIND`])
1556pub const SDLK_MEDIA_REWIND: SDL_Keycode = SDL_Keycode::MEDIA_REWIND;
1557/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_NEXT_TRACK`])
1558pub const SDLK_MEDIA_NEXT_TRACK: SDL_Keycode = SDL_Keycode::MEDIA_NEXT_TRACK;
1559/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PREVIOUS_TRACK`])
1560pub const SDLK_MEDIA_PREVIOUS_TRACK: SDL_Keycode = SDL_Keycode::MEDIA_PREVIOUS_TRACK;
1561/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_STOP`])
1562pub const SDLK_MEDIA_STOP: SDL_Keycode = SDL_Keycode::MEDIA_STOP;
1563/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_EJECT`])
1564pub const SDLK_MEDIA_EJECT: SDL_Keycode = SDL_Keycode::MEDIA_EJECT;
1565/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_PLAY_PAUSE`])
1566pub const SDLK_MEDIA_PLAY_PAUSE: SDL_Keycode = SDL_Keycode::MEDIA_PLAY_PAUSE;
1567/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_MEDIA_SELECT`])
1568pub const SDLK_MEDIA_SELECT: SDL_Keycode = SDL_Keycode::MEDIA_SELECT;
1569/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_NEW`])
1570pub const SDLK_AC_NEW: SDL_Keycode = SDL_Keycode::AC_NEW;
1571/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_OPEN`])
1572pub const SDLK_AC_OPEN: SDL_Keycode = SDL_Keycode::AC_OPEN;
1573/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_CLOSE`])
1574pub const SDLK_AC_CLOSE: SDL_Keycode = SDL_Keycode::AC_CLOSE;
1575/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_EXIT`])
1576pub const SDLK_AC_EXIT: SDL_Keycode = SDL_Keycode::AC_EXIT;
1577/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_SAVE`])
1578pub const SDLK_AC_SAVE: SDL_Keycode = SDL_Keycode::AC_SAVE;
1579/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_PRINT`])
1580pub const SDLK_AC_PRINT: SDL_Keycode = SDL_Keycode::AC_PRINT;
1581/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_PROPERTIES`])
1582pub const SDLK_AC_PROPERTIES: SDL_Keycode = SDL_Keycode::AC_PROPERTIES;
1583/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_SEARCH`])
1584pub const SDLK_AC_SEARCH: SDL_Keycode = SDL_Keycode::AC_SEARCH;
1585/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_HOME`])
1586pub const SDLK_AC_HOME: SDL_Keycode = SDL_Keycode::AC_HOME;
1587/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_BACK`])
1588pub const SDLK_AC_BACK: SDL_Keycode = SDL_Keycode::AC_BACK;
1589/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_FORWARD`])
1590pub const SDLK_AC_FORWARD: SDL_Keycode = SDL_Keycode::AC_FORWARD;
1591/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_STOP`])
1592pub const SDLK_AC_STOP: SDL_Keycode = SDL_Keycode::AC_STOP;
1593/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_REFRESH`])
1594pub const SDLK_AC_REFRESH: SDL_Keycode = SDL_Keycode::AC_REFRESH;
1595/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_AC_BOOKMARKS`])
1596pub const SDLK_AC_BOOKMARKS: SDL_Keycode = SDL_Keycode::AC_BOOKMARKS;
1597/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SOFTLEFT`])
1598pub const SDLK_SOFTLEFT: SDL_Keycode = SDL_Keycode::SOFTLEFT;
1599/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_SOFTRIGHT`])
1600pub const SDLK_SOFTRIGHT: SDL_Keycode = SDL_Keycode::SOFTRIGHT;
1601/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_CALL`])
1602pub const SDLK_CALL: SDL_Keycode = SDL_Keycode::CALL;
1603/// SDL_SCANCODE_TO_KEYCODE([`SDL_SCANCODE_ENDCALL`])
1604pub const SDLK_ENDCALL: SDL_Keycode = SDL_Keycode::ENDCALL;
1605/// Extended key Left Tab
1606pub const SDLK_LEFT_TAB: SDL_Keycode = SDL_Keycode::LEFT_TAB;
1607/// Extended key Level 5 Shift
1608pub const SDLK_LEVEL5_SHIFT: SDL_Keycode = SDL_Keycode::LEVEL5_SHIFT;
1609/// Extended key Multi-key Compose
1610pub const SDLK_MULTI_KEY_COMPOSE: SDL_Keycode = SDL_Keycode::MULTI_KEY_COMPOSE;
1611/// Extended key Left Meta
1612pub const SDLK_LMETA: SDL_Keycode = SDL_Keycode::LMETA;
1613/// Extended key Right Meta
1614pub const SDLK_RMETA: SDL_Keycode = SDL_Keycode::RMETA;
1615/// Extended key Left Hyper
1616pub const SDLK_LHYPER: SDL_Keycode = SDL_Keycode::LHYPER;
1617/// Extended key Right Hyper
1618pub const SDLK_RHYPER: SDL_Keycode = SDL_Keycode::RHYPER;
1619
1620#[cfg(feature = "metadata")]
1621impl sdl3_sys::metadata::GroupMetadata for SDL_Keycode {
1622    const GROUP_METADATA: &'static sdl3_sys::metadata::Group =
1623        &crate::metadata::keycode::METADATA_SDL_Keycode;
1624}
1625
1626#[inline(always)]
1627pub const fn SDL_SCANCODE_TO_KEYCODE(X: SDL_Scancode) -> Uint32 {
1628    ((X.0 as Uint32) | SDLK_SCANCODE_MASK.0)
1629}
1630
1631/// Valid key modifiers (possibly OR'd together).
1632///
1633/// ## Availability
1634/// This datatype is available since SDL 3.2.0.
1635///
1636/// ## Known values (`sdl3-sys`)
1637/// | Associated constant | Global constant | Description |
1638/// | ------------------- | --------------- | ----------- |
1639/// | [`NONE`](SDL_Keymod::NONE) | [`SDL_KMOD_NONE`] | no modifier is applicable. |
1640/// | [`LSHIFT`](SDL_Keymod::LSHIFT) | [`SDL_KMOD_LSHIFT`] | the left Shift key is down. |
1641/// | [`RSHIFT`](SDL_Keymod::RSHIFT) | [`SDL_KMOD_RSHIFT`] | the right Shift key is down. |
1642/// | [`LEVEL5`](SDL_Keymod::LEVEL5) | [`SDL_KMOD_LEVEL5`] | the Level 5 Shift key is down. |
1643/// | [`LCTRL`](SDL_Keymod::LCTRL) | [`SDL_KMOD_LCTRL`] | the left Ctrl (Control) key is down. |
1644/// | [`RCTRL`](SDL_Keymod::RCTRL) | [`SDL_KMOD_RCTRL`] | the right Ctrl (Control) key is down. |
1645/// | [`LALT`](SDL_Keymod::LALT) | [`SDL_KMOD_LALT`] | the left Alt key is down. |
1646/// | [`RALT`](SDL_Keymod::RALT) | [`SDL_KMOD_RALT`] | the right Alt key is down. |
1647/// | [`LGUI`](SDL_Keymod::LGUI) | [`SDL_KMOD_LGUI`] | the left GUI key (often the Windows key) is down. |
1648/// | [`RGUI`](SDL_Keymod::RGUI) | [`SDL_KMOD_RGUI`] | the right GUI key (often the Windows key) is down. |
1649/// | [`NUM`](SDL_Keymod::NUM) | [`SDL_KMOD_NUM`] | the Num Lock key (may be located on an extended keypad) is down. |
1650/// | [`CAPS`](SDL_Keymod::CAPS) | [`SDL_KMOD_CAPS`] | the Caps Lock key is down. |
1651/// | [`MODE`](SDL_Keymod::MODE) | [`SDL_KMOD_MODE`] | the !AltGr key is down. |
1652/// | [`SCROLL`](SDL_Keymod::SCROLL) | [`SDL_KMOD_SCROLL`] | the Scroll Lock key is down. |
1653/// | [`CTRL`](SDL_Keymod::CTRL) | [`SDL_KMOD_CTRL`] | Any Ctrl key is down. |
1654/// | [`SHIFT`](SDL_Keymod::SHIFT) | [`SDL_KMOD_SHIFT`] | Any Shift key is down. |
1655/// | [`ALT`](SDL_Keymod::ALT) | [`SDL_KMOD_ALT`] | Any Alt key is down. |
1656/// | [`GUI`](SDL_Keymod::GUI) | [`SDL_KMOD_GUI`] | Any GUI key is down. |
1657#[repr(transparent)]
1658#[derive(Clone, Copy, Default, PartialEq, Eq, Hash)]
1659pub struct SDL_Keymod(pub Uint16);
1660
1661impl ::core::cmp::PartialEq<Uint16> for SDL_Keymod {
1662    #[inline(always)]
1663    fn eq(&self, other: &Uint16) -> bool {
1664        &self.0 == other
1665    }
1666}
1667
1668impl ::core::cmp::PartialEq<SDL_Keymod> for Uint16 {
1669    #[inline(always)]
1670    fn eq(&self, other: &SDL_Keymod) -> bool {
1671        self == &other.0
1672    }
1673}
1674
1675impl From<SDL_Keymod> for Uint16 {
1676    #[inline(always)]
1677    fn from(value: SDL_Keymod) -> Self {
1678        value.0
1679    }
1680}
1681
1682#[cfg(feature = "debug-impls")]
1683impl ::core::fmt::Debug for SDL_Keymod {
1684    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1685        let mut first = true;
1686        let all_bits = 0;
1687        write!(f, "SDL_Keymod(")?;
1688        let all_bits = all_bits | Self::NONE.0;
1689        if (Self::NONE != 0 || self.0 == 0) && *self & Self::NONE == Self::NONE {
1690            if !first {
1691                write!(f, " | ")?;
1692            }
1693            first = false;
1694            write!(f, "NONE")?;
1695        }
1696        let all_bits = all_bits | Self::LSHIFT.0;
1697        if (Self::LSHIFT != 0 || self.0 == 0) && *self & Self::LSHIFT == Self::LSHIFT {
1698            if !first {
1699                write!(f, " | ")?;
1700            }
1701            first = false;
1702            write!(f, "LSHIFT")?;
1703        }
1704        let all_bits = all_bits | Self::RSHIFT.0;
1705        if (Self::RSHIFT != 0 || self.0 == 0) && *self & Self::RSHIFT == Self::RSHIFT {
1706            if !first {
1707                write!(f, " | ")?;
1708            }
1709            first = false;
1710            write!(f, "RSHIFT")?;
1711        }
1712        let all_bits = all_bits | Self::LEVEL5.0;
1713        if (Self::LEVEL5 != 0 || self.0 == 0) && *self & Self::LEVEL5 == Self::LEVEL5 {
1714            if !first {
1715                write!(f, " | ")?;
1716            }
1717            first = false;
1718            write!(f, "LEVEL5")?;
1719        }
1720        let all_bits = all_bits | Self::LCTRL.0;
1721        if (Self::LCTRL != 0 || self.0 == 0) && *self & Self::LCTRL == Self::LCTRL {
1722            if !first {
1723                write!(f, " | ")?;
1724            }
1725            first = false;
1726            write!(f, "LCTRL")?;
1727        }
1728        let all_bits = all_bits | Self::RCTRL.0;
1729        if (Self::RCTRL != 0 || self.0 == 0) && *self & Self::RCTRL == Self::RCTRL {
1730            if !first {
1731                write!(f, " | ")?;
1732            }
1733            first = false;
1734            write!(f, "RCTRL")?;
1735        }
1736        let all_bits = all_bits | Self::LALT.0;
1737        if (Self::LALT != 0 || self.0 == 0) && *self & Self::LALT == Self::LALT {
1738            if !first {
1739                write!(f, " | ")?;
1740            }
1741            first = false;
1742            write!(f, "LALT")?;
1743        }
1744        let all_bits = all_bits | Self::RALT.0;
1745        if (Self::RALT != 0 || self.0 == 0) && *self & Self::RALT == Self::RALT {
1746            if !first {
1747                write!(f, " | ")?;
1748            }
1749            first = false;
1750            write!(f, "RALT")?;
1751        }
1752        let all_bits = all_bits | Self::LGUI.0;
1753        if (Self::LGUI != 0 || self.0 == 0) && *self & Self::LGUI == Self::LGUI {
1754            if !first {
1755                write!(f, " | ")?;
1756            }
1757            first = false;
1758            write!(f, "LGUI")?;
1759        }
1760        let all_bits = all_bits | Self::RGUI.0;
1761        if (Self::RGUI != 0 || self.0 == 0) && *self & Self::RGUI == Self::RGUI {
1762            if !first {
1763                write!(f, " | ")?;
1764            }
1765            first = false;
1766            write!(f, "RGUI")?;
1767        }
1768        let all_bits = all_bits | Self::NUM.0;
1769        if (Self::NUM != 0 || self.0 == 0) && *self & Self::NUM == Self::NUM {
1770            if !first {
1771                write!(f, " | ")?;
1772            }
1773            first = false;
1774            write!(f, "NUM")?;
1775        }
1776        let all_bits = all_bits | Self::CAPS.0;
1777        if (Self::CAPS != 0 || self.0 == 0) && *self & Self::CAPS == Self::CAPS {
1778            if !first {
1779                write!(f, " | ")?;
1780            }
1781            first = false;
1782            write!(f, "CAPS")?;
1783        }
1784        let all_bits = all_bits | Self::MODE.0;
1785        if (Self::MODE != 0 || self.0 == 0) && *self & Self::MODE == Self::MODE {
1786            if !first {
1787                write!(f, " | ")?;
1788            }
1789            first = false;
1790            write!(f, "MODE")?;
1791        }
1792        let all_bits = all_bits | Self::SCROLL.0;
1793        if (Self::SCROLL != 0 || self.0 == 0) && *self & Self::SCROLL == Self::SCROLL {
1794            if !first {
1795                write!(f, " | ")?;
1796            }
1797            first = false;
1798            write!(f, "SCROLL")?;
1799        }
1800        let all_bits = all_bits | Self::CTRL.0;
1801        if (Self::CTRL != 0 || self.0 == 0) && *self & Self::CTRL == Self::CTRL {
1802            if !first {
1803                write!(f, " | ")?;
1804            }
1805            first = false;
1806            write!(f, "CTRL")?;
1807        }
1808        let all_bits = all_bits | Self::SHIFT.0;
1809        if (Self::SHIFT != 0 || self.0 == 0) && *self & Self::SHIFT == Self::SHIFT {
1810            if !first {
1811                write!(f, " | ")?;
1812            }
1813            first = false;
1814            write!(f, "SHIFT")?;
1815        }
1816        let all_bits = all_bits | Self::ALT.0;
1817        if (Self::ALT != 0 || self.0 == 0) && *self & Self::ALT == Self::ALT {
1818            if !first {
1819                write!(f, " | ")?;
1820            }
1821            first = false;
1822            write!(f, "ALT")?;
1823        }
1824        let all_bits = all_bits | Self::GUI.0;
1825        if (Self::GUI != 0 || self.0 == 0) && *self & Self::GUI == Self::GUI {
1826            if !first {
1827                write!(f, " | ")?;
1828            }
1829            first = false;
1830            write!(f, "GUI")?;
1831        }
1832
1833        if self.0 & !all_bits != 0 {
1834            if !first {
1835                write!(f, " | ")?;
1836            }
1837            write!(f, "{:#x}", self.0)?;
1838        } else if first {
1839            write!(f, "0")?;
1840        }
1841        write!(f, ")")
1842    }
1843}
1844
1845impl ::core::ops::BitAnd for SDL_Keymod {
1846    type Output = Self;
1847
1848    #[inline(always)]
1849    fn bitand(self, rhs: Self) -> Self::Output {
1850        Self(self.0 & rhs.0)
1851    }
1852}
1853
1854impl ::core::ops::BitAndAssign for SDL_Keymod {
1855    #[inline(always)]
1856    fn bitand_assign(&mut self, rhs: Self) {
1857        self.0 &= rhs.0;
1858    }
1859}
1860
1861impl ::core::ops::BitOr for SDL_Keymod {
1862    type Output = Self;
1863
1864    #[inline(always)]
1865    fn bitor(self, rhs: Self) -> Self::Output {
1866        Self(self.0 | rhs.0)
1867    }
1868}
1869
1870impl ::core::ops::BitOrAssign for SDL_Keymod {
1871    #[inline(always)]
1872    fn bitor_assign(&mut self, rhs: Self) {
1873        self.0 |= rhs.0;
1874    }
1875}
1876
1877impl ::core::ops::BitXor for SDL_Keymod {
1878    type Output = Self;
1879
1880    #[inline(always)]
1881    fn bitxor(self, rhs: Self) -> Self::Output {
1882        Self(self.0 ^ rhs.0)
1883    }
1884}
1885
1886impl ::core::ops::BitXorAssign for SDL_Keymod {
1887    #[inline(always)]
1888    fn bitxor_assign(&mut self, rhs: Self) {
1889        self.0 ^= rhs.0;
1890    }
1891}
1892
1893impl ::core::ops::Not for SDL_Keymod {
1894    type Output = Self;
1895
1896    #[inline(always)]
1897    fn not(self) -> Self::Output {
1898        Self(!self.0)
1899    }
1900}
1901
1902impl SDL_Keymod {
1903    /// no modifier is applicable.
1904    pub const NONE: Self = Self((0x0000 as Uint16));
1905    /// the left Shift key is down.
1906    pub const LSHIFT: Self = Self((0x0001 as Uint16));
1907    /// the right Shift key is down.
1908    pub const RSHIFT: Self = Self((0x0002 as Uint16));
1909    /// the Level 5 Shift key is down.
1910    pub const LEVEL5: Self = Self((0x0004 as Uint16));
1911    /// the left Ctrl (Control) key is down.
1912    pub const LCTRL: Self = Self((0x0040 as Uint16));
1913    /// the right Ctrl (Control) key is down.
1914    pub const RCTRL: Self = Self((0x0080 as Uint16));
1915    /// the left Alt key is down.
1916    pub const LALT: Self = Self((0x0100 as Uint16));
1917    /// the right Alt key is down.
1918    pub const RALT: Self = Self((0x0200 as Uint16));
1919    /// the left GUI key (often the Windows key) is down.
1920    pub const LGUI: Self = Self((0x0400 as Uint16));
1921    /// the right GUI key (often the Windows key) is down.
1922    pub const RGUI: Self = Self((0x0800 as Uint16));
1923    /// the Num Lock key (may be located on an extended keypad) is down.
1924    pub const NUM: Self = Self((0x1000 as Uint16));
1925    /// the Caps Lock key is down.
1926    pub const CAPS: Self = Self((0x2000 as Uint16));
1927    /// the !AltGr key is down.
1928    pub const MODE: Self = Self((0x4000 as Uint16));
1929    /// the Scroll Lock key is down.
1930    pub const SCROLL: Self = Self((0x8000 as Uint16));
1931    /// Any Ctrl key is down.
1932    pub const CTRL: Self = Self((SDL_KMOD_LCTRL.0 | SDL_KMOD_RCTRL.0));
1933    /// Any Shift key is down.
1934    pub const SHIFT: Self = Self((SDL_KMOD_LSHIFT.0 | SDL_KMOD_RSHIFT.0));
1935    /// Any Alt key is down.
1936    pub const ALT: Self = Self((SDL_KMOD_LALT.0 | SDL_KMOD_RALT.0));
1937    /// Any GUI key is down.
1938    pub const GUI: Self = Self((SDL_KMOD_LGUI.0 | SDL_KMOD_RGUI.0));
1939}
1940
1941/// no modifier is applicable.
1942pub const SDL_KMOD_NONE: SDL_Keymod = SDL_Keymod::NONE;
1943/// the left Shift key is down.
1944pub const SDL_KMOD_LSHIFT: SDL_Keymod = SDL_Keymod::LSHIFT;
1945/// the right Shift key is down.
1946pub const SDL_KMOD_RSHIFT: SDL_Keymod = SDL_Keymod::RSHIFT;
1947/// the Level 5 Shift key is down.
1948pub const SDL_KMOD_LEVEL5: SDL_Keymod = SDL_Keymod::LEVEL5;
1949/// the left Ctrl (Control) key is down.
1950pub const SDL_KMOD_LCTRL: SDL_Keymod = SDL_Keymod::LCTRL;
1951/// the right Ctrl (Control) key is down.
1952pub const SDL_KMOD_RCTRL: SDL_Keymod = SDL_Keymod::RCTRL;
1953/// the left Alt key is down.
1954pub const SDL_KMOD_LALT: SDL_Keymod = SDL_Keymod::LALT;
1955/// the right Alt key is down.
1956pub const SDL_KMOD_RALT: SDL_Keymod = SDL_Keymod::RALT;
1957/// the left GUI key (often the Windows key) is down.
1958pub const SDL_KMOD_LGUI: SDL_Keymod = SDL_Keymod::LGUI;
1959/// the right GUI key (often the Windows key) is down.
1960pub const SDL_KMOD_RGUI: SDL_Keymod = SDL_Keymod::RGUI;
1961/// the Num Lock key (may be located on an extended keypad) is down.
1962pub const SDL_KMOD_NUM: SDL_Keymod = SDL_Keymod::NUM;
1963/// the Caps Lock key is down.
1964pub const SDL_KMOD_CAPS: SDL_Keymod = SDL_Keymod::CAPS;
1965/// the !AltGr key is down.
1966pub const SDL_KMOD_MODE: SDL_Keymod = SDL_Keymod::MODE;
1967/// the Scroll Lock key is down.
1968pub const SDL_KMOD_SCROLL: SDL_Keymod = SDL_Keymod::SCROLL;
1969/// Any Ctrl key is down.
1970pub const SDL_KMOD_CTRL: SDL_Keymod = SDL_Keymod::CTRL;
1971/// Any Shift key is down.
1972pub const SDL_KMOD_SHIFT: SDL_Keymod = SDL_Keymod::SHIFT;
1973/// Any Alt key is down.
1974pub const SDL_KMOD_ALT: SDL_Keymod = SDL_Keymod::ALT;
1975/// Any GUI key is down.
1976pub const SDL_KMOD_GUI: SDL_Keymod = SDL_Keymod::GUI;
1977
1978#[cfg(feature = "metadata")]
1979impl sdl3_sys::metadata::GroupMetadata for SDL_Keymod {
1980    const GROUP_METADATA: &'static sdl3_sys::metadata::Group =
1981        &crate::metadata::keycode::METADATA_SDL_Keymod;
1982}
1983
1984#[cfg(doc)]
1985use crate::everything::*;