SDL 2.0
SDL_keycode.h
Go to the documentation of this file.
1/*
2 Simple DirectMedia Layer
3 Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
4
5 This software is provided 'as-is', without any express or implied
6 warranty. In no event will the authors be held liable for any damages
7 arising from the use of this software.
8
9 Permission is granted to anyone to use this software for any purpose,
10 including commercial applications, and to alter it and redistribute it
11 freely, subject to the following restrictions:
12
13 1. The origin of this software must not be misrepresented; you must not
14 claim that you wrote the original software. If you use this software
15 in a product, an acknowledgment in the product documentation would be
16 appreciated but is not required.
17 2. Altered source versions must be plainly marked as such, and must not be
18 misrepresented as being the original software.
19 3. This notice may not be removed or altered from any source distribution.
20*/
21
22/**
23 * \file SDL_keycode.h
24 *
25 * Defines constants which identify keyboard keys and modifiers.
26 */
27
28#ifndef SDL_keycode_h_
29#define SDL_keycode_h_
30
31#include "SDL_stdinc.h"
32#include "SDL_scancode.h"
33
34/**
35 * \brief The SDL virtual key representation.
36 *
37 * Values of this type are used to represent keyboard keys using the current
38 * layout of the keyboard. These values include Unicode values representing
39 * the unmodified character that would be generated by pressing the key, or
40 * an SDLK_* constant for those keys that do not generate characters.
41 *
42 * A special exception is the number keys at the top of the keyboard which
43 * map to SDLK_0...SDLK_9 on AZERTY layouts.
44 */
46
47#define SDLK_SCANCODE_MASK (1<<30)
48#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)
49
50typedef enum
51{
53
55 SDLK_ESCAPE = '\x1B',
57 SDLK_TAB = '\t',
61 SDLK_HASH = '#',
65 SDLK_QUOTE = '\'',
69 SDLK_PLUS = '+',
74 SDLK_0 = '0',
75 SDLK_1 = '1',
76 SDLK_2 = '2',
77 SDLK_3 = '3',
78 SDLK_4 = '4',
79 SDLK_5 = '5',
80 SDLK_6 = '6',
81 SDLK_7 = '7',
82 SDLK_8 = '8',
83 SDLK_9 = '9',
86 SDLK_LESS = '<',
90 SDLK_AT = '@',
91
92 /*
93 Skip uppercase letters
94 */
95
102 SDLK_a = 'a',
103 SDLK_b = 'b',
104 SDLK_c = 'c',
105 SDLK_d = 'd',
106 SDLK_e = 'e',
107 SDLK_f = 'f',
108 SDLK_g = 'g',
109 SDLK_h = 'h',
110 SDLK_i = 'i',
111 SDLK_j = 'j',
112 SDLK_k = 'k',
113 SDLK_l = 'l',
114 SDLK_m = 'm',
115 SDLK_n = 'n',
116 SDLK_o = 'o',
117 SDLK_p = 'p',
118 SDLK_q = 'q',
119 SDLK_r = 'r',
120 SDLK_s = 's',
121 SDLK_t = 't',
122 SDLK_u = 'u',
123 SDLK_v = 'v',
124 SDLK_w = 'w',
125 SDLK_x = 'x',
126 SDLK_y = 'y',
127 SDLK_z = 'z',
128
130
143
150 SDLK_DELETE = '\x7F',
157
175
208
221
277
286
288
306
319
322
328
329/**
330 * \brief Enumeration of valid key mods (possibly OR'd together).
331 */
332typedef enum
333{
334 KMOD_NONE = 0x0000,
335 KMOD_LSHIFT = 0x0001,
336 KMOD_RSHIFT = 0x0002,
337 KMOD_LCTRL = 0x0040,
338 KMOD_RCTRL = 0x0080,
339 KMOD_LALT = 0x0100,
340 KMOD_RALT = 0x0200,
341 KMOD_LGUI = 0x0400,
342 KMOD_RGUI = 0x0800,
343 KMOD_NUM = 0x1000,
344 KMOD_CAPS = 0x2000,
345 KMOD_MODE = 0x4000,
346 KMOD_SCROLL = 0x8000,
347
352
353 KMOD_RESERVED = KMOD_SCROLL /* This is for source-level compatibility with SDL 2.0.0. */
355
356#endif /* SDL_keycode_h_ */
357
358/* vi: set ts=4 sw=4 expandtab: */
SDL_KeyCode
Definition SDL_keycode.h:51
@ SDLK_g
@ SDLK_c
@ SDLK_RSHIFT
@ SDLK_RETURN2
@ SDLK_0
Definition SDL_keycode.h:74
@ SDLK_KP_MEMSTORE
@ SDLK_LESS
Definition SDL_keycode.h:86
@ SDLK_PERCENT
Definition SDL_keycode.h:62
@ SDLK_DOLLAR
Definition SDL_keycode.h:63
@ SDLK_LALT
@ SDLK_PASTE
@ SDLK_LGUI
@ SDLK_KP_MEMSUBTRACT
@ SDLK_u
@ SDLK_VOLUMEUP
@ SDLK_y
@ SDLK_KP_8
@ SDLK_KP_AMPERSAND
@ SDLK_BACKSPACE
Definition SDL_keycode.h:56
@ SDLK_h
@ SDLK_KP_HEXADECIMAL
@ SDLK_UNDERSCORE
@ SDLK_a
@ SDLK_POWER
@ SDLK_F2
@ SDLK_KP_POWER
@ SDLK_OUT
@ SDLK_F12
@ SDLK_e
@ SDLK_F23
@ SDLK_DECIMALSEPARATOR
@ SDLK_UNDO
@ SDLK_F13
@ SDLK_APP2
@ SDLK_EXECUTE
@ SDLK_COPY
@ SDLK_KP_C
@ SDLK_EQUALS
Definition SDL_keycode.h:87
@ SDLK_KP_VERTICALBAR
@ SDLK_KP_EQUALSAS400
@ SDLK_SEMICOLON
Definition SDL_keycode.h:85
@ SDLK_F1
@ SDLK_KP_RIGHTBRACE
@ SDLK_AUDIOSTOP
@ SDLK_UP
@ SDLK_KP_PLUSMINUS
@ SDLK_F19
@ SDLK_PRIOR
@ SDLK_KP_4
@ SDLK_KP_A
@ SDLK_KP_SPACE
@ SDLK_AC_HOME
@ SDLK_END
@ SDLK_AUDIOFASTFORWARD
@ SDLK_DISPLAYSWITCH
@ SDLK_MODE
@ SDLK_DOWN
@ SDLK_KP_E
@ SDLK_9
Definition SDL_keycode.h:83
@ SDLK_CURRENCYSUBUNIT
@ SDLK_COMPUTER
@ SDLK_KP_ENTER
@ SDLK_8
Definition SDL_keycode.h:82
@ SDLK_MEDIASELECT
@ SDLK_KP_9
@ SDLK_TAB
Definition SDL_keycode.h:57
@ SDLK_KP_MEMMULTIPLY
@ SDLK_AUDIOMUTE
@ SDLK_i
@ SDLK_KP_6
@ SDLK_BRIGHTNESSUP
@ SDLK_SLASH
Definition SDL_keycode.h:73
@ SDLK_KP_OCTAL
@ SDLK_QUOTE
Definition SDL_keycode.h:65
@ SDLK_j
@ SDLK_F20
@ SDLK_KP_XOR
@ SDLK_F6
@ SDLK_FIND
@ SDLK_KP_LEFTPAREN
@ SDLK_PERIOD
Definition SDL_keycode.h:72
@ SDLK_n
@ SDLK_STOP
@ SDLK_AC_BOOKMARKS
@ SDLK_UNKNOWN
Definition SDL_keycode.h:52
@ SDLK_5
Definition SDL_keycode.h:79
@ SDLK_AC_REFRESH
@ SDLK_F24
@ SDLK_F9
@ SDLK_z
@ SDLK_KP_PERCENT
@ SDLK_EXCLAIM
Definition SDL_keycode.h:59
@ SDLK_F18
@ SDLK_KBDILLUMUP
@ SDLK_AUDIOPLAY
@ SDLK_F21
@ SDLK_F4
@ SDLK_KP_5
@ SDLK_v
@ SDLK_PRINTSCREEN
@ SDLK_KP_MEMDIVIDE
@ SDLK_KP_CLEARENTRY
@ SDLK_F16
@ SDLK_KP_PERIOD
@ SDLK_NUMLOCKCLEAR
@ SDLK_KP_BACKSPACE
@ SDLK_CRSEL
@ SDLK_AC_BACK
@ SDLK_s
@ SDLK_KP_MEMADD
@ SDLK_AUDIOREWIND
@ SDLK_KP_PLUS
@ SDLK_F22
@ SDLK_MUTE
@ SDLK_KP_BINARY
@ SDLK_w
@ SDLK_SYSREQ
@ SDLK_k
@ SDLK_KP_00
@ SDLK_BACKQUOTE
@ SDLK_MENU
@ SDLK_AUDIOPREV
@ SDLK_CALL
@ SDLK_ALTERASE
@ SDLK_KP_7
@ SDLK_WWW
@ SDLK_F3
@ SDLK_BRIGHTNESSDOWN
@ SDLK_AUDIONEXT
@ SDLK_F10
@ SDLK_r
@ SDLK_ASTERISK
Definition SDL_keycode.h:68
@ SDLK_RIGHTBRACKET
Definition SDL_keycode.h:98
@ SDLK_SLEEP
@ SDLK_KP_HASH
@ SDLK_SOFTRIGHT
@ SDLK_AT
Definition SDL_keycode.h:90
@ SDLK_KP_LESS
@ SDLK_VOLUMEDOWN
@ SDLK_KP_D
@ SDLK_F17
@ SDLK_COMMA
Definition SDL_keycode.h:70
@ SDLK_LCTRL
@ SDLK_F8
@ SDLK_x
@ SDLK_EJECT
@ SDLK_QUOTEDBL
Definition SDL_keycode.h:60
@ SDLK_AC_STOP
@ SDLK_F14
@ SDLK_MINUS
Definition SDL_keycode.h:71
@ SDLK_d
@ SDLK_KBDILLUMTOGGLE
@ SDLK_KP_0
@ SDLK_b
@ SDLK_HOME
@ SDLK_LEFTBRACKET
Definition SDL_keycode.h:96
@ SDLK_F11
@ SDLK_SEPARATOR
@ SDLK_F7
@ SDLK_CUT
@ SDLK_KP_1
@ SDLK_EXSEL
@ SDLK_THOUSANDSSEPARATOR
@ SDLK_t
@ SDLK_m
@ SDLK_HASH
Definition SDL_keycode.h:61
@ SDLK_ESCAPE
Definition SDL_keycode.h:55
@ SDLK_KP_MINUS
@ SDLK_CARET
Definition SDL_keycode.h:99
@ SDLK_1
Definition SDL_keycode.h:75
@ SDLK_SPACE
Definition SDL_keycode.h:58
@ SDLK_PLUS
Definition SDL_keycode.h:69
@ SDLK_F5
@ SDLK_CLEARAGAIN
@ SDLK_CLEAR
@ SDLK_PAUSE
@ SDLK_7
Definition SDL_keycode.h:81
@ SDLK_KP_000
@ SDLK_KP_AT
@ SDLK_LEFT
@ SDLK_AC_SEARCH
@ SDLK_DELETE
@ SDLK_KBDILLUMDOWN
@ SDLK_LSHIFT
@ SDLK_AGAIN
@ SDLK_OPER
@ SDLK_KP_EQUALS
@ SDLK_KP_MEMRECALL
@ SDLK_CURRENCYUNIT
@ SDLK_CAPSLOCK
@ SDLK_BACKSLASH
Definition SDL_keycode.h:97
@ SDLK_PAGEUP
@ SDLK_KP_3
@ SDLK_KP_COMMA
@ SDLK_6
Definition SDL_keycode.h:80
@ SDLK_GREATER
Definition SDL_keycode.h:88
@ SDLK_q
@ SDLK_SCROLLLOCK
@ SDLK_INSERT
@ SDLK_3
Definition SDL_keycode.h:77
@ SDLK_LEFTPAREN
Definition SDL_keycode.h:66
@ SDLK_SOFTLEFT
@ SDLK_KP_RIGHTPAREN
@ SDLK_KP_2
@ SDLK_p
@ SDLK_RALT
@ SDLK_APPLICATION
@ SDLK_CALCULATOR
@ SDLK_KP_F
@ SDLK_RCTRL
@ SDLK_KP_EXCLAM
@ SDLK_KP_B
@ SDLK_f
@ SDLK_KP_COLON
@ SDLK_PAGEDOWN
@ SDLK_o
@ SDLK_MAIL
@ SDLK_RIGHT
@ SDLK_COLON
Definition SDL_keycode.h:84
@ SDLK_AMPERSAND
Definition SDL_keycode.h:64
@ SDLK_F15
@ SDLK_HELP
@ SDLK_l
@ SDLK_KP_TAB
@ SDLK_KP_MEMCLEAR
@ SDLK_APP1
@ SDLK_KP_DBLVERTICALBAR
@ SDLK_KP_GREATER
@ SDLK_KP_DBLAMPERSAND
@ SDLK_KP_DECIMAL
@ SDLK_RGUI
@ SDLK_AC_FORWARD
@ SDLK_CANCEL
@ SDLK_QUESTION
Definition SDL_keycode.h:89
@ SDLK_RIGHTPAREN
Definition SDL_keycode.h:67
@ SDLK_4
Definition SDL_keycode.h:78
@ SDLK_ENDCALL
@ SDLK_RETURN
Definition SDL_keycode.h:54
@ SDLK_KP_LEFTBRACE
@ SDLK_KP_DIVIDE
@ SDLK_KP_MULTIPLY
@ SDLK_SELECT
@ SDLK_2
Definition SDL_keycode.h:76
@ SDLK_KP_CLEAR
#define SDL_SCANCODE_TO_KEYCODE(X)
Definition SDL_keycode.h:48
Sint32 SDL_Keycode
The SDL virtual key representation.
Definition SDL_keycode.h:45
SDL_Keymod
Enumeration of valid key mods (possibly OR'd together).
@ KMOD_GUI
@ KMOD_MODE
@ KMOD_SHIFT
@ KMOD_RALT
@ KMOD_LSHIFT
@ KMOD_RESERVED
@ KMOD_LGUI
@ KMOD_CAPS
@ KMOD_LALT
@ KMOD_RCTRL
@ KMOD_NONE
@ KMOD_RGUI
@ KMOD_LCTRL
@ KMOD_SCROLL
@ KMOD_RSHIFT
@ KMOD_ALT
@ KMOD_NUM
@ KMOD_CTRL
@ SDL_SCANCODE_END
@ SDL_SCANCODE_OUT
@ SDL_SCANCODE_KP_OCTAL
@ SDL_SCANCODE_KP_CLEARENTRY
@ SDL_SCANCODE_BRIGHTNESSUP
@ SDL_SCANCODE_KP_EXCLAM
@ SDL_SCANCODE_KP_DECIMAL
@ SDL_SCANCODE_F15
@ SDL_SCANCODE_F12
@ SDL_SCANCODE_KP_E
@ SDL_SCANCODE_KP_PLUS
@ SDL_SCANCODE_F4
@ SDL_SCANCODE_KP_GREATER
@ SDL_SCANCODE_CAPSLOCK
@ SDL_SCANCODE_F2
@ SDL_SCANCODE_KP_MINUS
@ SDL_SCANCODE_KP_00
@ SDL_SCANCODE_F6
@ SDL_SCANCODE_KP_0
@ SDL_SCANCODE_KP_B
@ SDL_SCANCODE_F11
@ SDL_SCANCODE_CANCEL
@ SDL_SCANCODE_KP_PERIOD
@ SDL_SCANCODE_KP_F
@ SDL_SCANCODE_KP_LEFTPAREN
@ SDL_SCANCODE_F24
@ SDL_SCANCODE_AUDIOMUTE
@ SDL_SCANCODE_CALCULATOR
@ SDL_SCANCODE_CUT
@ SDL_SCANCODE_KP_VERTICALBAR
@ SDL_SCANCODE_KP_HEXADECIMAL
@ SDL_SCANCODE_KP_COMMA
@ SDL_SCANCODE_KP_SPACE
@ SDL_SCANCODE_KP_BACKSPACE
@ SDL_SCANCODE_CLEARAGAIN
@ SDL_SCANCODE_RGUI
@ SDL_SCANCODE_F10
@ SDL_SCANCODE_F3
@ SDL_SCANCODE_KP_AMPERSAND
@ SDL_SCANCODE_KP_COLON
@ SDL_SCANCODE_KP_RIGHTPAREN
@ SDL_SCANCODE_KP_D
@ SDL_SCANCODE_F1
@ SDL_SCANCODE_KP_EQUALS
@ SDL_SCANCODE_F21
@ SDL_SCANCODE_KP_6
@ SDL_SCANCODE_KP_HASH
@ SDL_SCANCODE_KP_TAB
@ SDL_SCANCODE_KP_7
@ SDL_SCANCODE_AC_REFRESH
@ SDL_SCANCODE_KP_9
@ SDL_SCANCODE_EXSEL
@ SDL_SCANCODE_VOLUMEUP
@ SDL_SCANCODE_APP2
@ SDL_SCANCODE_CRSEL
@ SDL_SCANCODE_ENDCALL
@ SDL_SCANCODE_NUMLOCKCLEAR
@ SDL_SCANCODE_PRINTSCREEN
@ SDL_SCANCODE_KP_XOR
@ SDL_SCANCODE_POWER
@ SDL_SCANCODE_MAIL
@ SDL_SCANCODE_KP_3
@ SDL_SCANCODE_SCROLLLOCK
@ SDL_SCANCODE_EJECT
@ SDL_SCANCODE_AUDIOPREV
@ SDL_SCANCODE_PAUSE
@ SDL_SCANCODE_KBDILLUMTOGGLE
@ SDL_SCANCODE_KP_000
@ SDL_SCANCODE_HELP
@ SDL_SCANCODE_PAGEDOWN
@ SDL_SCANCODE_LSHIFT
@ SDL_SCANCODE_AUDIOSTOP
@ SDL_SCANCODE_STOP
@ SDL_SCANCODE_CURRENCYSUBUNIT
@ SDL_SCANCODE_LCTRL
@ SDL_SCANCODE_F16
@ SDL_SCANCODE_F22
@ SDL_SCANCODE_DISPLAYSWITCH
@ SDL_SCANCODE_KP_MEMCLEAR
@ SDL_SCANCODE_LGUI
@ SDL_SCANCODE_KP_LESS
@ SDL_SCANCODE_AC_STOP
@ SDL_SCANCODE_OPER
@ SDL_SCANCODE_KP_MEMSUBTRACT
@ SDL_SCANCODE_KP_A
@ SDL_SCANCODE_AC_SEARCH
@ SDL_SCANCODE_DECIMALSEPARATOR
@ SDL_SCANCODE_F19
@ SDL_SCANCODE_EXECUTE
@ SDL_SCANCODE_KP_LEFTBRACE
@ SDL_SCANCODE_MENU
@ SDL_SCANCODE_RALT
@ SDL_SCANCODE_MUTE
@ SDL_SCANCODE_SYSREQ
@ SDL_SCANCODE_KP_PERCENT
@ SDL_SCANCODE_F17
@ SDL_SCANCODE_RETURN2
@ SDL_SCANCODE_KP_MEMADD
@ SDL_SCANCODE_KP_PLUSMINUS
@ SDL_SCANCODE_THOUSANDSSEPARATOR
@ SDL_SCANCODE_KP_ENTER
@ SDL_SCANCODE_AC_BACK
@ SDL_SCANCODE_FIND
@ SDL_SCANCODE_KP_MEMSTORE
@ SDL_SCANCODE_PAGEUP
@ SDL_SCANCODE_COMPUTER
@ SDL_SCANCODE_AUDIOPLAY
@ SDL_SCANCODE_F23
@ SDL_SCANCODE_CALL
@ SDL_SCANCODE_KP_MEMRECALL
@ SDL_SCANCODE_KP_AT
@ SDL_SCANCODE_KP_1
@ SDL_SCANCODE_AC_BOOKMARKS
@ SDL_SCANCODE_KP_MEMMULTIPLY
@ SDL_SCANCODE_DOWN
@ SDL_SCANCODE_COPY
@ SDL_SCANCODE_RIGHT
@ SDL_SCANCODE_F7
@ SDL_SCANCODE_WWW
@ SDL_SCANCODE_MODE
@ SDL_SCANCODE_ALTERASE
@ SDL_SCANCODE_KP_2
@ SDL_SCANCODE_KP_RIGHTBRACE
@ SDL_SCANCODE_AGAIN
@ SDL_SCANCODE_KP_EQUALSAS400
@ SDL_SCANCODE_KP_MULTIPLY
@ SDL_SCANCODE_KP_C
@ SDL_SCANCODE_KP_POWER
@ SDL_SCANCODE_AUDIOREWIND
@ SDL_SCANCODE_KP_DBLVERTICALBAR
@ SDL_SCANCODE_APP1
@ SDL_SCANCODE_F9
@ SDL_SCANCODE_F5
@ SDL_SCANCODE_BRIGHTNESSDOWN
@ SDL_SCANCODE_UP
@ SDL_SCANCODE_LEFT
@ SDL_SCANCODE_AUDIONEXT
@ SDL_SCANCODE_KBDILLUMDOWN
@ SDL_SCANCODE_KP_BINARY
@ SDL_SCANCODE_SELECT
@ SDL_SCANCODE_APPLICATION
@ SDL_SCANCODE_KP_4
@ SDL_SCANCODE_HOME
@ SDL_SCANCODE_F14
@ SDL_SCANCODE_KP_CLEAR
@ SDL_SCANCODE_AUDIOFASTFORWARD
@ SDL_SCANCODE_KBDILLUMUP
@ SDL_SCANCODE_F8
@ SDL_SCANCODE_LALT
@ SDL_SCANCODE_KP_8
@ SDL_SCANCODE_PASTE
@ SDL_SCANCODE_RCTRL
@ SDL_SCANCODE_F20
@ SDL_SCANCODE_KP_5
@ SDL_SCANCODE_UNDO
@ SDL_SCANCODE_KP_DBLAMPERSAND
@ SDL_SCANCODE_CLEAR
@ SDL_SCANCODE_AC_HOME
@ SDL_SCANCODE_VOLUMEDOWN
@ SDL_SCANCODE_SOFTRIGHT
@ SDL_SCANCODE_SLEEP
@ SDL_SCANCODE_KP_DIVIDE
@ SDL_SCANCODE_PRIOR
@ SDL_SCANCODE_F18
@ SDL_SCANCODE_F13
@ SDL_SCANCODE_CURRENCYUNIT
@ SDL_SCANCODE_SOFTLEFT
@ SDL_SCANCODE_MEDIASELECT
@ SDL_SCANCODE_SEPARATOR
@ SDL_SCANCODE_RSHIFT
@ SDL_SCANCODE_INSERT
@ SDL_SCANCODE_AC_FORWARD
@ SDL_SCANCODE_KP_MEMDIVIDE
int32_t Sint32
Definition SDL_stdinc.h:216