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