1 /*
2  * Copyright 2011-2012 Arx Libertatis Team (see the AUTHORS file)
3  *
4  * This file is part of Arx Libertatis.
5  *
6  * Arx Libertatis is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Arx Libertatis is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Arx Libertatis.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef ARX_INPUT_KEYBOARD_H
21 #define ARX_INPUT_KEYBOARD_H
22 
23 class Keyboard {
24 
25 public:
26 
27 	//! Key enumeration.
28 	enum Key {
29 
30 		KeyBase = 0,
31 
32 		Key_0 = KeyBase,
33 		Key_1,
34 		Key_2,
35 		Key_3,
36 		Key_4,
37 		Key_5,
38 		Key_6,
39 		Key_7,
40 		Key_8,
41 		Key_9,
42 
43 		Key_A,
44 		Key_B,
45 		Key_C,
46 		Key_D,
47 		Key_E,
48 		Key_F,
49 		Key_G,
50 		Key_H,
51 		Key_I,
52 		Key_J,
53 		Key_K,
54 		Key_L,
55 		Key_M,
56 		Key_N,
57 		Key_O,
58 		Key_P,
59 		Key_Q,
60 		Key_R,
61 		Key_S,
62 		Key_T,
63 		Key_U,
64 		Key_V,
65 		Key_W,
66 		Key_X,
67 		Key_Y,
68 		Key_Z,
69 
70 		Key_F1,
71 		Key_F2,
72 		Key_F3,
73 		Key_F4,
74 		Key_F5,
75 		Key_F6,
76 		Key_F7,
77 		Key_F8,
78 		Key_F9,
79 		Key_F10,
80 		Key_F11,
81 		Key_F12,
82 		Key_F13,
83 		Key_F14,
84 		Key_F15,
85 
86 		Key_UpArrow,
87 		Key_DownArrow,
88 		Key_LeftArrow,
89 		Key_RightArrow,
90 
91 		Key_Home,
92 		Key_End,
93 		Key_PageUp,
94 		Key_PageDown,
95 		Key_Insert,
96 		Key_Delete,
97 
98 		Key_Escape,
99 
100 		Key_NumLock,
101 		Key_NumPad0,
102 		Key_NumPad1,
103 		Key_NumPad2,
104 		Key_NumPad3,
105 		Key_NumPad4,
106 		Key_NumPad5,
107 		Key_NumPad6,
108 		Key_NumPad7,
109 		Key_NumPad8,
110 		Key_NumPad9,
111 		Key_NumPadEnter,
112 		Key_NumSubtract,        // (-) on numeric keypad
113 		Key_NumAdd,             // (+) on numeric keypad
114 		Key_NumMultiply,        // (*) on numeric keypad
115 		Key_NumDivide,          // (/) on numeric keypad
116 		Key_NumPoint,           // PERIOD (decimal point) on numeric keypad
117 
118 		Key_LeftBracket,        // Left square bracket [
119 		Key_LeftCtrl,           // Left CTRL
120 		Key_LeftAlt,            // Left ALT
121 		Key_LeftShift,          // Left SHIFT
122 		Key_LeftWin,            // Left Windows logo key
123 
124 		Key_RightBracket,       // Right square bracket ]
125 		Key_RightCtrl,          // Right CTRL
126 		Key_RightAlt,           // Right ALT
127 		Key_RightShift,         // Right SHIFT
128 		Key_RightWin,           // Right Windows logo key
129 
130 		Key_PrintScreen,
131 		Key_ScrollLock,
132 		Key_Pause,
133 
134 		Key_Spacebar,
135 		Key_Backspace,
136 		Key_Enter,              // ENTER on main keyboard
137 		Key_Tab,
138 
139 		Key_Apps,               // Application key
140 		Key_CapsLock,
141 
142 		Key_Slash,              // (/) On main keyboard
143 		Key_Backslash,          // (\)
144 		Key_Comma,              // (,)
145 		Key_Semicolon,          // (;)
146 		Key_Period,             // (.) On main keyboard
147 		Key_Grave,              // (`) Grave accent
148 		Key_Apostrophe,         // (')
149 		Key_Minus,              // (-) On main keyboard
150 		Key_Equals,             // (=) On main keyboard
151 
152 		KeyMax,
153 		KeyCount = KeyMax - KeyBase
154 	};
155 };
156 
157 #endif // ARX_INPUT_KEYBOARD_H
158