]> git.tdb.fi Git - libs/gui.git/blob - source/input/keys.h
3915aa2fce8dd1ec4706ff78ae3c5554de4c9045
[libs/gui.git] / source / input / keys.h
1 #ifndef MSP_INPUT_KEYS_H_
2 #define MSP_INPUT_KEYS_H_
3
4 namespace Msp {
5 namespace Input {
6
7 enum
8 {
9         // Codes 0x01-0x7E reserved for ASCII
10         KEY_BACKSPACE = 0x08,
11         KEY_TAB = 0x09,
12         KEY_ENTER = 0x0A,
13         KEY_ESC = 0x1B,
14         KEY_SPACE = 0x20,
15
16         KEY_APOSTROPHE = 0x27,
17         KEY_PLUS = 0x2B,
18         KEY_COMMA = 0x2C,
19         KEY_MINUS = 0x2D,
20         KEY_PERIOD = 0x2E,
21         KEY_SLASH = 0x2F,
22
23         KEY_0 = 0x30,
24         KEY_1,
25         KEY_2,
26         KEY_3,
27         KEY_4,
28         KEY_5,
29         KEY_6,
30         KEY_7,
31         KEY_8,
32         KEY_9,
33
34         KEY_SEMICOLON = 0x3B,
35         KEY_LESS = 0x3C,
36         KEY_EQUAL = 0x3D,
37
38         KEY_A = 0x41,
39         KEY_B,
40         KEY_C,
41         KEY_D,
42         KEY_E,
43         KEY_F,
44         KEY_G,
45         KEY_H,
46         KEY_I,
47         KEY_J,
48         KEY_K,
49         KEY_L,
50         KEY_M,
51         KEY_N,
52         KEY_O,
53         KEY_P,
54         KEY_Q,
55         KEY_R,
56         KEY_S,
57         KEY_T,
58         KEY_U,
59         KEY_V,
60         KEY_W,
61         KEY_X,
62         KEY_Y,
63         KEY_Z,
64
65         KEY_BRACKET_L = 0x5B,
66         KEY_BACKSLASH = 0x5C,
67         KEY_BRACKET_R = 0x5D,
68         KEY_GRAVE = 0x60,
69
70         // Various non-ASCII characters
71         KEY_ADIAERESIS = 0x80,
72         KEY_ODIAERESIS,
73         KEY_UDIAERESIS,
74         KEY_ARING,
75
76         // Arrow keys
77         KEY_LEFT = 0xA0,
78         KEY_RIGHT,
79         KEY_UP,
80         KEY_DOWN,
81
82         // The block above arrow keys
83         KEY_HOME = 0xA8,
84         KEY_END,
85         KEY_PGUP,
86         KEY_PGDN,
87         KEY_INSERT,
88         KEY_DELETE,
89
90         // Function keys
91         KEY_F1 = 0xB1,
92         KEY_F2,
93         KEY_F3,
94         KEY_F4,
95         KEY_F5,
96         KEY_F6,
97         KEY_F7,
98         KEY_F8,
99         KEY_F9,
100         KEY_F10,
101         KEY_F11,
102         KEY_F12,
103
104         // Modifier keys
105         KEY_SHIFT_L = 0xC0,
106         KEY_SHIFT_R,
107         KEY_CTRL_L,
108         KEY_CTRL_R,
109         KEY_ALT_L,
110         KEY_ALT_R,
111         KEY_SUPER_L,
112         KEY_SUPER_R,
113         KEY_CAPS_LOCK,
114         KEY_SCROLL_LOCK,
115         KEY_NUM_LOCK,
116
117         // Keypad
118         KEY_KP0 = 0xD0,
119         KEY_KP1,
120         KEY_KP2,
121         KEY_KP3,
122         KEY_KP4,
123         KEY_KP5,
124         KEY_KP6,
125         KEY_KP7,
126         KEY_KP8,
127         KEY_KP9,
128         KEY_KP_ADD,
129         KEY_KP_SUBTRACT,
130         KEY_KP_MULTIPLY,
131         KEY_KP_DIVIDE,
132         KEY_KP_SEPARATOR,
133
134         // Miscellaneous keys
135         KEY_PAUSE = 0xE0,
136         KEY_PRINT_SCREEN,
137         KEY_MENU,
138
139         N_KEYS_ = 0x100
140 };
141
142 extern unsigned key_from_sys(unsigned);
143 extern unsigned key_to_sys(unsigned);
144
145 } // namespace Input
146 } // namespace Msp
147
148 #endif