~ubuntu-branches/ubuntu/precise/stellarium/precise

« back to all changes in this revision

Viewing changes to src/stelutils/StelKey.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Cédric Delfosse
  • Date: 2008-05-19 21:28:23 UTC
  • mfrom: (3.1.5 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080519212823-m5nfiuntxstxzxj7
Tags: 0.9.1-4
Add libxcursor-dev, libxfixes-dev, libxinerama-dev, libqt4-opengl-dev to
build-deps (Closes: #479906)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef STELKEY_HPP_
 
2
#define STELKEY_HPP_
 
3
 
 
4
#include <config.h>
 
5
 
 
6
// Directly and shamlessly copied from SDL_keysym.h
 
7
 
 
8
typedef enum {
 
9
        /* The keyboard syms have been cleverly chosen to map to ASCII */
 
10
        StelKey_UNKNOWN         = 0,
 
11
        StelKey_FIRST           = 0,
 
12
        StelKey_BACKSPACE               = 8,
 
13
        StelKey_TAB             = 9,
 
14
        StelKey_CLEAR           = 12,
 
15
        StelKey_RETURN          = 13,
 
16
        StelKey_PAUSE           = 19,
 
17
        StelKey_ESCAPE          = 27,
 
18
        StelKey_SPACE           = 32,
 
19
        StelKey_EXCLAIM         = 33,
 
20
        StelKey_QUOTEDBL                = 34,
 
21
        StelKey_HASH            = 35,
 
22
        StelKey_DOLLAR          = 36,
 
23
        StelKey_AMPERSAND               = 38,
 
24
        StelKey_QUOTE           = 39,
 
25
        StelKey_LEFTPAREN               = 40,
 
26
        StelKey_RIGHTPAREN              = 41,
 
27
        StelKey_ASTERISK                = 42,
 
28
        StelKey_PLUS            = 43,
 
29
        StelKey_COMMA           = 44,
 
30
        StelKey_MINUS           = 45,
 
31
        StelKey_PERIOD          = 46,
 
32
        StelKey_SLASH           = 47,
 
33
        StelKey_0                       = 48,
 
34
        StelKey_1                       = 49,
 
35
        StelKey_2                       = 50,
 
36
        StelKey_3                       = 51,
 
37
        StelKey_4                       = 52,
 
38
        StelKey_5                       = 53,
 
39
        StelKey_6                       = 54,
 
40
        StelKey_7                       = 55,
 
41
        StelKey_8                       = 56,
 
42
        StelKey_9                       = 57,
 
43
        StelKey_COLON           = 58,
 
44
        StelKey_SEMICOLON               = 59,
 
45
        StelKey_LESS            = 60,
 
46
        StelKey_EQUALS          = 61,
 
47
        StelKey_GREATER         = 62,
 
48
        StelKey_QUESTION                = 63,
 
49
        StelKey_AT                      = 64,
 
50
        /* 
 
51
           Skip uppercase letters
 
52
         */
 
53
        StelKey_LEFTBRACKET     = 91,
 
54
        StelKey_BACKSLASH               = 92,
 
55
        StelKey_RIGHTBRACKET    = 93,
 
56
        StelKey_CARET           = 94,
 
57
        StelKey_UNDERSCORE              = 95,
 
58
        StelKey_BACKQUOTE               = 96,
 
59
        StelKey_a                       = 97,
 
60
        StelKey_b                       = 98,
 
61
        StelKey_c                       = 99,
 
62
        StelKey_d                       = 100,
 
63
        StelKey_e                       = 101,
 
64
        StelKey_f                       = 102,
 
65
        StelKey_g                       = 103,
 
66
        StelKey_h                       = 104,
 
67
        StelKey_i                       = 105,
 
68
        StelKey_j                       = 106,
 
69
        StelKey_k                       = 107,
 
70
        StelKey_l                       = 108,
 
71
        StelKey_m                       = 109,
 
72
        StelKey_n                       = 110,
 
73
        StelKey_o                       = 111,
 
74
        StelKey_p                       = 112,
 
75
        StelKey_q                       = 113,
 
76
        StelKey_r                       = 114,
 
77
        StelKey_s                       = 115,
 
78
        StelKey_t                       = 116,
 
79
        StelKey_u                       = 117,
 
80
        StelKey_v                       = 118,
 
81
        StelKey_w                       = 119,
 
82
        StelKey_x                       = 120,
 
83
        StelKey_y                       = 121,
 
84
        StelKey_z                       = 122,
 
85
        StelKey_DELETE          = 127,
 
86
        /* End of ASCII mapped keysyms */
 
87
 
 
88
        /* International keyboard syms */
 
89
        StelKey_WORLD_0         = 160,          /* 0xA0 */
 
90
        StelKey_WORLD_1         = 161,
 
91
        StelKey_WORLD_2         = 162,
 
92
        StelKey_WORLD_3         = 163,
 
93
        StelKey_WORLD_4         = 164,
 
94
        StelKey_WORLD_5         = 165,
 
95
        StelKey_WORLD_6         = 166,
 
96
        StelKey_WORLD_7         = 167,
 
97
        StelKey_WORLD_8         = 168,
 
98
        StelKey_WORLD_9         = 169,
 
99
        StelKey_WORLD_10                = 170,
 
100
        StelKey_WORLD_11                = 171,
 
101
        StelKey_WORLD_12                = 172,
 
102
        StelKey_WORLD_13                = 173,
 
103
        StelKey_WORLD_14                = 174,
 
104
        StelKey_WORLD_15                = 175,
 
105
        StelKey_WORLD_16                = 176,
 
106
        StelKey_WORLD_17                = 177,
 
107
        StelKey_WORLD_18                = 178,
 
108
        StelKey_WORLD_19                = 179,
 
109
        StelKey_WORLD_20                = 180,
 
110
        StelKey_WORLD_21                = 181,
 
111
        StelKey_WORLD_22                = 182,
 
112
        StelKey_WORLD_23                = 183,
 
113
        StelKey_WORLD_24                = 184,
 
114
        StelKey_WORLD_25                = 185,
 
115
        StelKey_WORLD_26                = 186,
 
116
        StelKey_WORLD_27                = 187,
 
117
        StelKey_WORLD_28                = 188,
 
118
        StelKey_WORLD_29                = 189,
 
119
        StelKey_WORLD_30                = 190,
 
120
        StelKey_WORLD_31                = 191,
 
121
        StelKey_WORLD_32                = 192,
 
122
        StelKey_WORLD_33                = 193,
 
123
        StelKey_WORLD_34                = 194,
 
124
        StelKey_WORLD_35                = 195,
 
125
        StelKey_WORLD_36                = 196,
 
126
        StelKey_WORLD_37                = 197,
 
127
        StelKey_WORLD_38                = 198,
 
128
        StelKey_WORLD_39                = 199,
 
129
        StelKey_WORLD_40                = 200,
 
130
        StelKey_WORLD_41                = 201,
 
131
        StelKey_WORLD_42                = 202,
 
132
        StelKey_WORLD_43                = 203,
 
133
        StelKey_WORLD_44                = 204,
 
134
        StelKey_WORLD_45                = 205,
 
135
        StelKey_WORLD_46                = 206,
 
136
        StelKey_WORLD_47                = 207,
 
137
        StelKey_WORLD_48                = 208,
 
138
        StelKey_WORLD_49                = 209,
 
139
        StelKey_WORLD_50                = 210,
 
140
        StelKey_WORLD_51                = 211,
 
141
        StelKey_WORLD_52                = 212,
 
142
        StelKey_WORLD_53                = 213,
 
143
        StelKey_WORLD_54                = 214,
 
144
        StelKey_WORLD_55                = 215,
 
145
        StelKey_WORLD_56                = 216,
 
146
        StelKey_WORLD_57                = 217,
 
147
        StelKey_WORLD_58                = 218,
 
148
        StelKey_WORLD_59                = 219,
 
149
        StelKey_WORLD_60                = 220,
 
150
        StelKey_WORLD_61                = 221,
 
151
        StelKey_WORLD_62                = 222,
 
152
        StelKey_WORLD_63                = 223,
 
153
        StelKey_WORLD_64                = 224,
 
154
        StelKey_WORLD_65                = 225,
 
155
        StelKey_WORLD_66                = 226,
 
156
        StelKey_WORLD_67                = 227,
 
157
        StelKey_WORLD_68                = 228,
 
158
        StelKey_WORLD_69                = 229,
 
159
        StelKey_WORLD_70                = 230,
 
160
        StelKey_WORLD_71                = 231,
 
161
        StelKey_WORLD_72                = 232,
 
162
        StelKey_WORLD_73                = 233,
 
163
        StelKey_WORLD_74                = 234,
 
164
        StelKey_WORLD_75                = 235,
 
165
        StelKey_WORLD_76                = 236,
 
166
        StelKey_WORLD_77                = 237,
 
167
        StelKey_WORLD_78                = 238,
 
168
        StelKey_WORLD_79                = 239,
 
169
        StelKey_WORLD_80                = 240,
 
170
        StelKey_WORLD_81                = 241,
 
171
        StelKey_WORLD_82                = 242,
 
172
        StelKey_WORLD_83                = 243,
 
173
        StelKey_WORLD_84                = 244,
 
174
        StelKey_WORLD_85                = 245,
 
175
        StelKey_WORLD_86                = 246,
 
176
        StelKey_WORLD_87                = 247,
 
177
        StelKey_WORLD_88                = 248,
 
178
        StelKey_WORLD_89                = 249,
 
179
        StelKey_WORLD_90                = 250,
 
180
        StelKey_WORLD_91                = 251,
 
181
        StelKey_WORLD_92                = 252,
 
182
        StelKey_WORLD_93                = 253,
 
183
        StelKey_WORLD_94                = 254,
 
184
        StelKey_WORLD_95                = 255,          /* 0xFF */
 
185
 
 
186
        /* Numeric keypad */
 
187
        StelKey_KP0             = 256,
 
188
        StelKey_KP1             = 257,
 
189
        StelKey_KP2             = 258,
 
190
        StelKey_KP3             = 259,
 
191
        StelKey_KP4             = 260,
 
192
        StelKey_KP5             = 261,
 
193
        StelKey_KP6             = 262,
 
194
        StelKey_KP7             = 263,
 
195
        StelKey_KP8             = 264,
 
196
        StelKey_KP9             = 265,
 
197
        StelKey_KP_PERIOD               = 266,
 
198
        StelKey_KP_DIVIDE               = 267,
 
199
        StelKey_KP_MULTIPLY     = 268,
 
200
        StelKey_KP_MINUS                = 269,
 
201
        StelKey_KP_PLUS         = 270,
 
202
        StelKey_KP_ENTER                = 271,
 
203
        StelKey_KP_EQUALS               = 272,
 
204
 
 
205
        /* Arrows + Home/End pad */
 
206
        StelKey_UP                      = 273,
 
207
        StelKey_DOWN            = 274,
 
208
        StelKey_RIGHT           = 275,
 
209
        StelKey_LEFT            = 276,
 
210
        StelKey_INSERT          = 277,
 
211
        StelKey_HOME            = 278,
 
212
        StelKey_END             = 279,
 
213
        StelKey_PAGEUP          = 280,
 
214
        StelKey_PAGEDOWN                = 281,
 
215
 
 
216
        /* Function keys */
 
217
        StelKey_F1                      = 282,
 
218
        StelKey_F2                      = 283,
 
219
        StelKey_F3                      = 284,
 
220
        StelKey_F4                      = 285,
 
221
        StelKey_F5                      = 286,
 
222
        StelKey_F6                      = 287,
 
223
        StelKey_F7                      = 288,
 
224
        StelKey_F8                      = 289,
 
225
        StelKey_F9                      = 290,
 
226
        StelKey_F10             = 291,
 
227
        StelKey_F11             = 292,
 
228
        StelKey_F12             = 293,
 
229
        StelKey_F13             = 294,
 
230
        StelKey_F14             = 295,
 
231
        StelKey_F15             = 296,
 
232
 
 
233
        /* Key state modifier keys */
 
234
        StelKey_NUMLOCK         = 300,
 
235
        StelKey_CAPSLOCK                = 301,
 
236
        StelKey_SCROLLOCK               = 302,
 
237
        StelKey_RSHIFT          = 303,
 
238
        StelKey_LSHIFT          = 304,
 
239
        StelKey_RCTRL           = 305,
 
240
        StelKey_LCTRL           = 306,
 
241
        StelKey_RALT            = 307,
 
242
        StelKey_LALT            = 308,
 
243
        StelKey_RMETA           = 309,
 
244
        StelKey_LMETA           = 310,
 
245
        StelKey_LSUPER          = 311,          /* Left "Windows" key */
 
246
        StelKey_RSUPER          = 312,          /* Right "Windows" key */
 
247
        StelKey_MODE            = 313,          /* "Alt Gr" key */
 
248
        StelKey_COMPOSE         = 314,          /* Multi-key compose key */
 
249
 
 
250
        /* Miscellaneous function keys */
 
251
        StelKey_HELP            = 315,
 
252
        StelKey_PRINT           = 316,
 
253
        StelKey_SYSREQ          = 317,
 
254
        StelKey_BREAK           = 318,
 
255
        StelKey_MENU            = 319,
 
256
        StelKey_POWER           = 320,          /* Power Macintosh power key */
 
257
        StelKey_EURO            = 321,          /* Some european keyboards */
 
258
        StelKey_UNDO            = 322,          /* Atari keyboard has Undo */
 
259
 
 
260
        /* Add any other keys here */
 
261
 
 
262
        StelKey_LAST
 
263
} StelKey;
 
264
 
 
265
/* Enumeration of valid key mods (possibly OR'd together) */
 
266
typedef enum {
 
267
        StelMod_NONE  = 0x0000,
 
268
        StelMod_LSHIFT= 0x0001,
 
269
        StelMod_RSHIFT= 0x0002,
 
270
        StelMod_LCTRL = 0x0040,
 
271
        StelMod_RCTRL = 0x0080,
 
272
        StelMod_LALT  = 0x0100,
 
273
        StelMod_RALT  = 0x0200,
 
274
        StelMod_LMETA = 0x0400,
 
275
        StelMod_RMETA = 0x0800,
 
276
        StelMod_NUM   = 0x1000,
 
277
        StelMod_CAPS  = 0x2000,
 
278
        StelMod_MODE  = 0x4000,
 
279
        StelMod_RESERVED = 0x8000
 
280
} StelMod;
 
281
 
 
282
#define StelMod_CTRL    ((StelMod)(StelMod_LCTRL|StelMod_RCTRL))
 
283
#define StelMod_SHIFT   ((StelMod)(StelMod_LSHIFT|StelMod_RSHIFT))
 
284
#define StelMod_ALT     ((StelMod)(StelMod_LALT|StelMod_RALT))
 
285
#define StelMod_META    ((StelMod)(StelMod_LMETA|StelMod_RMETA))
 
286
 
 
287
#define Stel_BUTTON_LEFT                1
 
288
#define Stel_BUTTON_MIDDLE      2
 
289
#define Stel_BUTTON_RIGHT       3
 
290
#define Stel_BUTTON_WHEELUP     4
 
291
#define Stel_BUTTON_WHEELDOWN   5
 
292
 
 
293
typedef enum {
 
294
Stel_KEYDOWN,
 
295
Stel_KEYUP,
 
296
Stel_MOUSEBUTTONDOWN,           /* Mouse button pressed */
 
297
Stel_MOUSEBUTTONUP,             /* Mouse button released */
 
298
Stel_NOEVENT
 
299
} StelEvent;
 
300
 
 
301
// mac seems to use KMOD_META instead of KMOD_CTRL
 
302
#ifdef MACOSX
 
303
#define COMPATIBLE_StelMod_CTRL StelMod_META
 
304
#else
 
305
#define COMPATIBLE_StelMod_CTRL StelMod_CTRL
 
306
#endif
 
307
 
 
308
#define SDLKeyToStelKey(key) ((StelKey)key)
 
309
#define SDLmodToStelMod(mod) ((StelMod)mod)
 
310
#define SDLButtonToStelButton(button) (button)
 
311
 
 
312
#endif /*STELKEY_HPP_*/