scancode.nim
Defines keyboard scancodes.
Types
Scancode* {...}{.size: sizeof(cint).} = enum SCANCODE_UNKNOWN = 0, SCANCODE_A = 4, SCANCODE_B = 5, SCANCODE_C = 6, SCANCODE_D = 7, SCANCODE_E = 8, SCANCODE_F = 9, SCANCODE_G = 10, SCANCODE_H = 11, SCANCODE_I = 12, SCANCODE_J = 13, SCANCODE_K = 14, SCANCODE_L = 15, SCANCODE_M = 16, SCANCODE_N = 17, SCANCODE_O = 18, SCANCODE_P = 19, SCANCODE_Q = 20, SCANCODE_R = 21, SCANCODE_S = 22, SCANCODE_T = 23, SCANCODE_U = 24, SCANCODE_V = 25, SCANCODE_W = 26, SCANCODE_X = 27, SCANCODE_Y = 28, SCANCODE_Z = 29, SCANCODE_1 = 30, SCANCODE_2 = 31, SCANCODE_3 = 32, SCANCODE_4 = 33, SCANCODE_5 = 34, SCANCODE_6 = 35, SCANCODE_7 = 36, SCANCODE_8 = 37, SCANCODE_9 = 38, SCANCODE_0 = 39, SCANCODE_RETURN = 40, SCANCODE_ESCAPE = 41, SCANCODE_BACKSPACE = 42, SCANCODE_TAB = 43, SCANCODE_SPACE = 44, SCANCODE_MINUS = 45, SCANCODE_EQUALS = 46, SCANCODE_LEFTBRACKET = 47, SCANCODE_RIGHTBRACKET = 48, SCANCODE_BACKSLASH = 49, ## Located at the lower left of the `return` key on ISO keyboards and ## at the right end of the QWERTY row on ANSI keyboards. ## Produces `REVERSE SOLIDUS` (backslash) and `VERTICAL LINE` in a US ## layout, `REVERSE SOLIDUS` and `VERTICAL LINE` in a UK Mac layout, ## `NUMBER SIGN` and `TILDE` in a UK Windows layout, `DOLLAR SIGN` and ## `POUND SIGN` in a Swiss German layout, `NUMBER SIGN` and ## `APOSTROPHE` in a German layout, `GRAVE ACCENT` and `POUND SIGN` ## in a French Mac layout, and `ASTERISK` and `MICRO SIGN` in a ## French Windows layout. SCANCODE_NONUSHASH = 50, ## ISO USB keyboards actually use this code instead of `49` for the ## same key, but all OSes I've seen treat the two codes identically. ## So, as an implementor, unless your keyboard generates both of those ## codes and your OS treats them differently, you should generate ## `SDL_SCANCODE_BACKSLASH` instead of this code. As a user, you ## should not rely on this code because SDL will never generate it ## with most (all?) keyboards. SCANCODE_SEMICOLON = 51, SCANCODE_APOSTROPHE = 52, SCANCODE_GRAVE = 53, ## Located in the top left corner (on both ANSI and ISO keyboards). ## Produces `GRAVE ACCENT` and `TILDE` in a US Windows layout and in US ## and UK Mac layouts on ANSI keyboards, `GRAVE ACCENT` and `NOT SIGN` ## in a UK Windows layout, `SECTION SIGN` and `PLUS-MINUS SIGN` in US ## and UK Mac layouts on ISO keyboards, `SECTION SIGN` and `DEGREE SIGN` ## in a Swiss German layout (Mac: only on ISO keyboards), ## `CIRCUMFLEX ACCENT` and `DEGREE SIGN` in a German layout (Mac: only ## on ISO keyboards), `SUPERSCRIPT TWO` and `TILDE` in a French Windows ## layout, `COMMERCIAL AT` and `NUMBER SIGN` in a French Mac layout on ## ISO keyboards, and `LESS-THAN SIGN` and `GREATER-THAN SIGN` in a ## Swiss German, German, or French Mac layout on ANSI keyboards. SCANCODE_COMMA = 54, SCANCODE_PERIOD = 55, SCANCODE_SLASH = 56, SCANCODE_CAPSLOCK = 57, SCANCODE_F1 = 58, SCANCODE_F2 = 59, SCANCODE_F3 = 60, SCANCODE_F4 = 61, SCANCODE_F5 = 62, SCANCODE_F6 = 63, SCANCODE_F7 = 64, SCANCODE_F8 = 65, SCANCODE_F9 = 66, SCANCODE_F10 = 67, SCANCODE_F11 = 68, SCANCODE_F12 = 69, SCANCODE_PRINTSCREEN = 70, SCANCODE_SCROLLLOCK = 71, SCANCODE_PAUSE = 72, SCANCODE_INSERT = 73, ## `insert` on PC, `help` on some Mac keyboards ## (but does send code `73`, not `117`) SCANCODE_HOME = 74, SCANCODE_PAGEUP = 75, SCANCODE_DELETE = 76, SCANCODE_END = 77, SCANCODE_PAGEDOWN = 78, SCANCODE_RIGHT = 79, SCANCODE_LEFT = 80, SCANCODE_DOWN = 81, SCANCODE_UP = 82, SCANCODE_NUMLOCKCLEAR = 83, ## `num lock` on PC, clear on Mac keyboards SCANCODE_KP_DIVIDE = 84, SCANCODE_KP_MULTIPLY = 85, SCANCODE_KP_MINUS = 86, SCANCODE_KP_PLUS = 87, SCANCODE_KP_ENTER = 88, SCANCODE_KP_1 = 89, SCANCODE_KP_2 = 90, SCANCODE_KP_3 = 91, SCANCODE_KP_4 = 92, SCANCODE_KP_5 = 93, SCANCODE_KP_6 = 94, SCANCODE_KP_7 = 95, SCANCODE_KP_8 = 96, SCANCODE_KP_9 = 97, SCANCODE_KP_0 = 98, SCANCODE_KP_PERIOD = 99, SCANCODE_NONUSBACKSLASH = 100, ## This is the additional key that ISO keyboards have over ANSI ones, ## located between `left shift` and `Y`. ## Produces `GRAVE ACCENT` and `TILDE` in a US or UK Mac layout, ## `REVERSE SOLIDUS` (backslash) and `VERTICAL LINE` in a US or UK ## Windows layout, and `LESS-THAN SIGN` and `GREATER-THAN SIGN` in a ## Swiss German, German, or French layout. SCANCODE_APPLICATION = 101, ## `windows contextual menu`, `compose` SCANCODE_POWER = 102, ## The USB document says this is a status flag, ## not a physical key - but some Mac keyboards do have a power key. SCANCODE_KP_EQUALS = 103, SCANCODE_F13 = 104, SCANCODE_F14 = 105, SCANCODE_F15 = 106, SCANCODE_F16 = 107, SCANCODE_F17 = 108, SCANCODE_F18 = 109, SCANCODE_F19 = 110, SCANCODE_F20 = 111, SCANCODE_F21 = 112, SCANCODE_F22 = 113, SCANCODE_F23 = 114, SCANCODE_F24 = 115, SCANCODE_EXECUTE = 116, SCANCODE_HELP = 117, SCANCODE_MENU = 118, SCANCODE_SELECT = 119, SCANCODE_STOP = 120, SCANCODE_AGAIN = 121, ## redo SCANCODE_UNDO = 122, SCANCODE_CUT = 123, SCANCODE_COPY = 124, SCANCODE_PASTE = 125, SCANCODE_FIND = 126, SCANCODE_MUTE = 127, SCANCODE_VOLUMEUP = 128, SCANCODE_VOLUMEDOWN = 129, SCANCODE_KP_COMMA = 133, SCANCODE_KP_EQUALSAS400 = 134, SCANCODE_INTERNATIONAL1 = 135, ## used on Asian keyboards, see footnotes in USB doc SCANCODE_INTERNATIONAL2 = 136, SCANCODE_INTERNATIONAL3 = 137, ## Yen SCANCODE_INTERNATIONAL4 = 138, SCANCODE_INTERNATIONAL5 = 139, SCANCODE_INTERNATIONAL6 = 140, SCANCODE_INTERNATIONAL7 = 141, SCANCODE_INTERNATIONAL8 = 142, SCANCODE_INTERNATIONAL9 = 143, SCANCODE_LANG1 = 144, ## Hangul/English toggle SCANCODE_LANG2 = 145, ## Hanja conversion SCANCODE_LANG3 = 146, ## Katakana SCANCODE_LANG4 = 147, ## Hiragana SCANCODE_LANG5 = 148, ## Zenkaku/Hankaku SCANCODE_LANG6 = 149, ## reserved SCANCODE_LANG7 = 150, ## reserved SCANCODE_LANG8 = 151, ## reserved SCANCODE_LANG9 = 152, ## reserved SCANCODE_ALTERASE = 153, ## Erase-Eaze SCANCODE_SYSREQ = 154, SCANCODE_CANCEL = 155, SCANCODE_CLEAR = 156, SCANCODE_PRIOR = 157, SCANCODE_RETURN2 = 158, SCANCODE_SEPARATOR = 159, SCANCODE_OUT = 160, SCANCODE_OPER = 161, SCANCODE_CLEARAGAIN = 162, SCANCODE_CRSEL = 163, SCANCODE_EXSEL = 164, SCANCODE_KP_00 = 176, SCANCODE_KP_000 = 177, SCANCODE_THOUSANDSSEPARATOR = 178, SCANCODE_DECIMALSEPARATOR = 179, SCANCODE_CURRENCYUNIT = 180, SCANCODE_CURRENCYSUBUNIT = 181, SCANCODE_KP_LEFTPAREN = 182, SCANCODE_KP_RIGHTPAREN = 183, SCANCODE_KP_LEFTBRACE = 184, SCANCODE_KP_RIGHTBRACE = 185, SCANCODE_KP_TAB = 186, SCANCODE_KP_BACKSPACE = 187, SCANCODE_KP_A = 188, SCANCODE_KP_B = 189, SCANCODE_KP_C = 190, SCANCODE_KP_D = 191, SCANCODE_KP_E = 192, SCANCODE_KP_F = 193, SCANCODE_KP_XOR = 194, SCANCODE_KP_POWER = 195, SCANCODE_KP_PERCENT = 196, SCANCODE_KP_LESS = 197, SCANCODE_KP_GREATER = 198, SCANCODE_KP_AMPERSAND = 199, SCANCODE_KP_DBLAMPERSAND = 200, SCANCODE_KP_VERTICALBAR = 201, SCANCODE_KP_DBLVERTICALBAR = 202, SCANCODE_KP_COLON = 203, SCANCODE_KP_HASH = 204, SCANCODE_KP_SPACE = 205, SCANCODE_KP_AT = 206, SCANCODE_KP_EXCLAM = 207, SCANCODE_KP_MEMSTORE = 208, SCANCODE_KP_MEMRECALL = 209, SCANCODE_KP_MEMCLEAR = 210, SCANCODE_KP_MEMADD = 211, SCANCODE_KP_MEMSUBTRACT = 212, SCANCODE_KP_MEMMULTIPLY = 213, SCANCODE_KP_MEMDIVIDE = 214, SCANCODE_KP_PLUSMINUS = 215, SCANCODE_KP_CLEAR = 216, SCANCODE_KP_CLEARENTRY = 217, SCANCODE_KP_BINARY = 218, SCANCODE_KP_OCTAL = 219, SCANCODE_KP_DECIMAL = 220, SCANCODE_KP_HEXADECIMAL = 221, SCANCODE_LCTRL = 224, SCANCODE_LSHIFT = 225, SCANCODE_LALT = 226, ## `alt`, `option` SCANCODE_LGUI = 227, ## `windows`, `command` (apple), `meta` SCANCODE_RCTRL = 228, SCANCODE_RSHIFT = 229, SCANCODE_RALT = 230, ## `alt gr`, `option` SCANCODE_RGUI = 231, ## `windows`, `command` (apple), `meta` SCANCODE_MODE = 257, ## I'm not sure if this is really not covered by any of the above, ## but since there's a special `KMOD_MODE` for it I'm adding it here SCANCODE_AUDIONEXT = 258, SCANCODE_AUDIOPREV = 259, SCANCODE_AUDIOSTOP = 260, SCANCODE_AUDIOPLAY = 261, SCANCODE_AUDIOMUTE = 262, SCANCODE_MEDIASELECT = 263, SCANCODE_WWW = 264, SCANCODE_MAIL = 265, SCANCODE_CALCULATOR = 266, SCANCODE_COMPUTER = 267, SCANCODE_AC_SEARCH = 268, SCANCODE_AC_HOME = 269, SCANCODE_AC_BACK = 270, SCANCODE_AC_FORWARD = 271, SCANCODE_AC_STOP = 272, SCANCODE_AC_REFRESH = 273, SCANCODE_AC_BOOKMARKS = 274, SCANCODE_BRIGHTNESSDOWN = 275, SCANCODE_BRIGHTNESSUP = 276, SCANCODE_DISPLAYSWITCH = 277, ## display mirroring/dual display switch, video mode switch SCANCODE_KBDILLUMTOGGLE = 278, SCANCODE_KBDILLUMDOWN = 279, SCANCODE_KBDILLUMUP = 280, SCANCODE_EJECT = 281, SCANCODE_SLEEP = 282, SCANCODE_APP1 = 283, SCANCODE_APP2 = 284, SCANCODE_AUDIOREWIND = 285, SCANCODE_AUDIOFASTFORWARD = 286, NUM_SCANCODES = 512 ## not a key, just marks the number of scancodes for array bounds
-
The SDL keyboard scancode representation.
Values of this type are used to represent keyboard keys, among other places in the key.keysym.scancode field of the Event structure.
The values in this enumeration are based on the USB usage page standard: https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf