source: nrEngine/include/KeySym.h @ 1

Revision 1, 8.2 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program 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 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************
12 *                                                                         *
13 *    This definitions was get from SDL-Keysym. So you can directly map    *
14 *    indices of nrEngine keys into SDL's own. I choosed this definition   *
15 *    because of clearly defined key binding to ASCII-code.                *
16 *    You can say: Why do this guy just not include sdl_keysym.h file. So my*
17 *    answer is: Because we want to stay independet with our nrEngine.     *
18 *    If you want to write new framework work class for our engine like    *
19 *    GLFW-OpenGL-Framework, SDL, GLUT(OK not so great :-)) and so on, you *
20 *    have to map keybindings from this engines to nrEngine owns. For some *
21 *    not well written engines it can produce performance leck. Do it better*
22 *    if you know how.                                                     *
23 **************************************************************************/
24
25#ifndef __NR_KEY_SYMS_H_
26#define __NR_KEY_SYMS_H_
27
28
29/**
30 * What we really want is a mapping of every raw key on the keyboard.
31 *  To support international keyboards, we use the range 0xA1 - 0xFF
32 *  as international virtual keycodes.  We'll follow in the footsteps of X11...
33 *  The names of the keys
34 * \ingroup gp
35 */
36
37namespace nrEngine{
38
39        typedef enum _KeyIndex {
40                /* The keyboard syms have been cleverly chosen to map to ASCII */
41                KEY_UNKNOWN             = 0,
42                KEY_FIRST                       = 0,
43                KEY_BACKSPACE           = 8,
44                KEY_TAB                 = 9,
45                KEY_CLEAR                       = 12,
46                KEY_RETURN              = 13,
47                KEY_PAUSE                       = 19,
48                KEY_ESCAPE              = 27,
49                KEY_SPACE                       = 32,
50                KEY_EXCLAIM             = 33,
51                KEY_QUOTEDBL            = 34,
52                KEY_HASH                        = 35,
53                KEY_DOLLAR              = 36,
54                KEY_AMPERSAND           = 38,
55                KEY_QUOTE                       = 39,
56                KEY_LEFTPAREN           = 40,
57                KEY_RIGHTPAREN  = 41,
58                KEY_ASTERISK            = 42,
59                KEY_PLUS                        = 43,
60                KEY_COMMA                       = 44,
61                KEY_MINUS                       = 45,
62                KEY_PERIOD              = 46,
63                KEY_SLASH                       = 47,
64                KEY_0                           = 48,
65                KEY_1                           = 49,
66                KEY_2                           = 50,
67                KEY_3                           = 51,
68                KEY_4                           = 52,
69                KEY_5                           = 53,
70                KEY_6                           = 54,
71                KEY_7                           = 55,
72                KEY_8                           = 56,
73                KEY_9                           = 57,
74                KEY_COLON                       = 58,
75                KEY_SEMICOLON           = 59,
76                KEY_LESS                        = 60,
77                KEY_EQUALS              = 61,
78                KEY_GREATER             = 62,
79                KEY_QUESTION            = 63,
80                KEY_AT                  = 64,
81
82                /*
83                Skip uppercase letters
84                */
85                KEY_LEFTBRACKET = 91,
86                KEY_BACKSLASH           = 92,
87                KEY_RIGHTBRACKET        = 93,
88                KEY_CARET                       = 94,
89                KEY_UNDERSCORE  = 95,
90                KEY_BACKQUOTE           = 96,
91                KEY_a                           = 97,
92                KEY_b                           = 98,
93                KEY_c                           = 99,
94                KEY_d                           = 100,
95                KEY_e                           = 101,
96                KEY_f                           = 102,
97                KEY_g                           = 103,
98                KEY_h                           = 104,
99                KEY_i                           = 105,
100                KEY_j                           = 106,
101                KEY_k                           = 107,
102                KEY_l                           = 108,
103                KEY_m                           = 109,
104                KEY_n                           = 110,
105                KEY_o                           = 111,
106                KEY_p                           = 112,
107                KEY_q                           = 113,
108                KEY_r                           = 114,
109                KEY_s                           = 115,
110                KEY_t                           = 116,
111                KEY_u                           = 117,
112                KEY_v                           = 118,
113                KEY_w                           = 119,
114                KEY_x                           = 120,
115                KEY_y                           = 121,
116                KEY_z                           = 122,
117                KEY_DELETE              = 127,
118                /* End of ASCII mapped keysyms */
119
120
121                /* International keyboard syms */
122                KEY_WORLD_0             = 160,          /* 0xA0 */
123                KEY_WORLD_1             = 161,
124                KEY_WORLD_2             = 162,
125                KEY_WORLD_3             = 163,
126                KEY_WORLD_4             = 164,
127                KEY_WORLD_5             = 165,
128                KEY_WORLD_6             = 166,
129                KEY_WORLD_7             = 167,
130                KEY_WORLD_8             = 168,
131                KEY_WORLD_9             = 169,
132                KEY_WORLD_10            = 170,
133                KEY_WORLD_11            = 171,
134                KEY_WORLD_12            = 172,
135                KEY_WORLD_13            = 173,
136                KEY_WORLD_14            = 174,
137                KEY_WORLD_15            = 175,
138                KEY_WORLD_16            = 176,
139                KEY_WORLD_17            = 177,
140                KEY_WORLD_18            = 178,
141                KEY_WORLD_19            = 179,
142                KEY_WORLD_20            = 180,
143                KEY_WORLD_21            = 181,
144                KEY_WORLD_22            = 182,
145                KEY_WORLD_23            = 183,
146                KEY_WORLD_24            = 184,
147                KEY_WORLD_25            = 185,
148                KEY_WORLD_26            = 186,
149                KEY_WORLD_27            = 187,
150                KEY_WORLD_28            = 188,
151                KEY_WORLD_29            = 189,
152                KEY_WORLD_30            = 190,
153                KEY_WORLD_31            = 191,
154                KEY_WORLD_32            = 192,
155                KEY_WORLD_33            = 193,
156                KEY_WORLD_34            = 194,
157                KEY_WORLD_35            = 195,
158                KEY_WORLD_36            = 196,
159                KEY_WORLD_37            = 197,
160                KEY_WORLD_38            = 198,
161                KEY_WORLD_39            = 199,
162                KEY_WORLD_40            = 200,
163                KEY_WORLD_41            = 201,
164                KEY_WORLD_42            = 202,
165                KEY_WORLD_43            = 203,
166                KEY_WORLD_44            = 204,
167                KEY_WORLD_45            = 205,
168                KEY_WORLD_46            = 206,
169                KEY_WORLD_47            = 207,
170                KEY_WORLD_48            = 208,
171                KEY_WORLD_49            = 209,
172                KEY_WORLD_50            = 210,
173                KEY_WORLD_51            = 211,
174                KEY_WORLD_52            = 212,
175                KEY_WORLD_53            = 213,
176                KEY_WORLD_54            = 214,
177                KEY_WORLD_55            = 215,
178                KEY_WORLD_56            = 216,
179                KEY_WORLD_57            = 217,
180                KEY_WORLD_58            = 218,
181                KEY_WORLD_59            = 219,
182                KEY_WORLD_60            = 220,
183                KEY_WORLD_61            = 221,
184                KEY_WORLD_62            = 222,
185                KEY_WORLD_63            = 223,
186                KEY_WORLD_64            = 224,
187                KEY_WORLD_65            = 225,
188                KEY_WORLD_66            = 226,
189                KEY_WORLD_67            = 227,
190                KEY_WORLD_68            = 228,
191                KEY_WORLD_69            = 229,
192                KEY_WORLD_70            = 230,
193                KEY_WORLD_71            = 231,
194                KEY_WORLD_72            = 232,
195                KEY_WORLD_73            = 233,
196                KEY_WORLD_74            = 234,
197                KEY_WORLD_75            = 235,
198                KEY_WORLD_76            = 236,
199                KEY_WORLD_77            = 237,
200                KEY_WORLD_78            = 238,
201                KEY_WORLD_79            = 239,
202                KEY_WORLD_80            = 240,
203                KEY_WORLD_81            = 241,
204                KEY_WORLD_82            = 242,
205                KEY_WORLD_83            = 243,
206                KEY_WORLD_84            = 244,
207                KEY_WORLD_85            = 245,
208                KEY_WORLD_86            = 246,
209                KEY_WORLD_87            = 247,
210                KEY_WORLD_88            = 248,
211                KEY_WORLD_89            = 249,
212                KEY_WORLD_90            = 250,
213                KEY_WORLD_91            = 251,
214                KEY_WORLD_92            = 252,
215                KEY_WORLD_93            = 253,
216                KEY_WORLD_94            = 254,
217                KEY_WORLD_95            = 255,          /* 0xFF */
218
219                /* Numeric keypad */
220                KEY_KP0         = 256,
221                KEY_KP1         = 257,
222                KEY_KP2         = 258,
223                KEY_KP3         = 259,
224                KEY_KP4         = 260,
225                KEY_KP5         = 261,
226                KEY_KP6         = 262,
227                KEY_KP7         = 263,
228                KEY_KP8         = 264,
229                KEY_KP9         = 265,
230                KEY_KP_PERIOD           = 266,
231                KEY_KP_DIVIDE           = 267,
232                KEY_KP_MULTIPLY = 268,
233                KEY_KP_MINUS            = 269,
234                KEY_KP_PLUS             = 270,
235                KEY_KP_ENTER            = 271,
236                KEY_KP_EQUALS           = 272,
237
238                /* Arrows + Home/End pad */
239                KEY_UP                  = 273,
240                KEY_DOWN                = 274,
241                KEY_RIGHT               = 275,
242                KEY_LEFT                = 276,
243                KEY_INSERT      = 277,
244                KEY_HOME                = 278,
245                KEY_END         = 279,
246                KEY_PAGEUP      = 280,
247                KEY_PAGEDOWN    = 281,
248
249                /* Function keys */
250                KEY_F1          = 282,
251                KEY_F2          = 283,
252                KEY_F3          = 284,
253                KEY_F4          = 285,
254                KEY_F5          = 286,
255                KEY_F6          = 287,
256                KEY_F7          = 288,
257                KEY_F8          = 289,
258                KEY_F9          = 290,
259                KEY_F10         = 291,
260                KEY_F11         = 292,
261                KEY_F12         = 293,
262                KEY_F13         = 294,
263                KEY_F14         = 295,
264                KEY_F15         = 296,
265
266                /* Key state modifier keys */
267                KEY_NUMLOCK     = 300,
268                KEY_CAPSLOCK    = 301,
269                KEY_SCROLLOCK   = 302,
270                KEY_RSHIFT      = 303,
271                KEY_LSHIFT      = 304,
272                KEY_RCTRL               = 305,
273                KEY_LCTRL               = 306,
274                KEY_RALT                = 307,
275                KEY_LALT                = 308,
276                KEY_RMETA               = 309,
277                KEY_LMETA               = 310,
278                KEY_LSUPER      = 311,          /* Left "Windows" key */
279                KEY_RSUPER      = 312,          /* Right "Windows" key */
280                KEY_MODE                = 313,          /* "Alt Gr" key */
281                KEY_COMPOSE     = 314,          /* Multi-key compose key */
282
283                /* Miscellaneous function keys */
284                KEY_HELP                = 315,
285                KEY_PRINT               = 316,
286                KEY_SYSREQ      = 317,
287                KEY_BREAK               = 318,
288                KEY_MENU                = 319,
289                KEY_POWER               = 320,          /* Power Macintosh power key */
290                KEY_EURO                = 321,          /* Some european keyboards */
291                KEY_UNDO                = 322,          /* Atari keyboard has Undo */
292
293                /* Add any other keys here */
294
295                KEY_LAST
296
297        } keyIndex;
298
299        /* Enumeration of valid key mods (possibly OR'd together) */
300        /*typedef enum {
301                KMOD_NONE  = 0x0000,
302                KMOD_LSHIFT= 0x0001,
303                KMOD_RSHIFT= 0x0002,
304                KMOD_LCTRL = 0x0040,
305                KMOD_RCTRL = 0x0080,
306                KMOD_LALT  = 0x0100,
307                KMOD_RALT  = 0x0200,
308                KMOD_LMETA = 0x0400,
309                KMOD_RMETA = 0x0800,
310                KMOD_NUM   = 0x1000,
311                KMOD_CAPS  = 0x2000,
312                KMOD_MODE  = 0x4000,
313                KMOD_RESERVED = 0x8000
314        } SDLMod;
315
316        #define KMOD_CTRL       (KMOD_LCTRL|KMOD_RCTRL)
317        #define KMOD_SHIFT      (KMOD_LSHIFT|KMOD_RSHIFT)
318        #define KMOD_ALT        (KMOD_LALT|KMOD_RALT)
319        #define KMOD_META       (KMOD_LMETA|KMOD_RMETA)
320        */
321
322        typedef enum _mouseButtonIndex{
323
324                BUTTON_LEFT,
325                BUTTON_RIGHT,
326                BUTTON_MIDDLE,
327                BUTTON_WHEEL,
328                BUTTON_WHEEL_UP,
329                BUTTON_WHEEL_DOWN,
330
331                BUTTON_COUNT
332
333        } mouseButtonIndex;
334
335}; // end namespace
336#endif
Note: See TracBrowser for help on using the repository browser.