Gnash
0.8.11dev
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
libcore
GnashKey.h
Go to the documentation of this file.
1
// GnashKey.h: map sets of keycodes to each other.
2
//
3
// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
4
// Free Software Foundation, Inc
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 3 of the License, or
9
// (at your option) any later version.
10
//
11
// This program 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 this program; if not, write to the Free Software
18
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
20
#ifndef GNASHKEY_H
21
#define GNASHKEY_H
22
23
namespace
gnash {
24
25
namespace
key {
26
29
#ifdef _WIN32
30
# undef REGISTERED
31
#endif
32
33
enum
modifier
34
{
35
GNASH_MOD_NONE
= 0,
36
GNASH_MOD_SHIFT
= 1,
37
GNASH_MOD_CONTROL
= 2,
38
GNASH_MOD_ALT
= 4
39
};
40
41
// Gnash DisplayObject codes. Each code represents a single DisplayObject on the keyboard.
42
// The first 128 code are ordered by their correspond ASCII value.
43
enum
code
44
{
45
INVALID
= 0,
46
UNKNOWN1
,
47
UNKNOWN2
,
48
UNKNOWN3
,
49
UNKNOWN4
,
50
UNKNOWN5
,
51
UNKNOWN6
,
52
UNKNOWN7
,
53
BACKSPACE
= 8,
54
TAB
= 9,
55
UNKNOWN10
,
56
UNKNOWN11
,
57
CLEAR
= 12,
58
ENTER
= 13,
59
UNKNOWN14
,
60
UNKNOWN15
,
61
SHIFT
= 16,
62
CONTROL
= 17,
63
ALT
= 18,
64
PAUSE
= 19,
65
CAPSLOCK
= 20,
66
UNKNOWN21
,
67
UNKNOWN22
,
68
UNKNOWN23
,
69
UNKNOWN24
,
70
UNKNOWN25
,
71
UNKNOWN26
,
72
ESCAPE
= 27,
73
UNKNOWN28
,
74
UNKNOWN29
,
75
UNKNOWN30
,
76
UNKNOWN31
,
77
SPACE
= 32,
78
EXCLAM
= 33,
79
DOUBLE_QUOTE
= 34,
80
HASH
= 35,
81
DOLLAR
= 36,
82
PERCENT
= 37,
83
AMPERSAND
= 38 ,
84
SINGLE_QUOTE
= 39,
85
PAREN_LEFT
= 40,
86
PAREN_RIGHT
= 41,
87
ASTERISK
= 42,
88
PLUS
= 43,
89
COMMA
= 44,
90
MINUS
= 45,
91
PERIOD
= 46,
92
SLASH
=47,
93
94
_0
= 48,
95
_1
,
96
_2
,
97
_3
,
98
_4
,
99
_5
,
100
_6
,
101
_7
,
102
_8
,
103
_9
= 57,
104
105
COLON
= 58,
106
SEMICOLON
= 59,
107
LESS
= 60,
108
EQUALS
= 61,
109
MORE
= 62,
110
QUESTION
= 63,
111
AT
= 64,
112
113
A
= 65,
114
B
,
115
C
,
116
D
,
117
E
,
118
F
,
119
G
,
120
H
,
121
I
,
122
J
,
123
K
,
124
L
,
125
M
,
126
N
,
127
O
,
128
P
,
129
Q
,
130
R
,
131
S
,
132
T
,
133
U
,
134
V
,
135
W
,
136
X
,
137
Y
,
138
Z
= 90,
139
140
LEFT_BRACKET
= 91,
141
BACKSLASH
=92,
142
RIGHT_BRACKET
= 93,
143
CARET
= 94,
144
UNDERSCORE
= 95,
145
BACKQUOTE
= 96,
146
147
a
= 97,
148
b
,
149
c
,
150
d
,
151
e
,
152
f
,
153
g
,
154
h
,
155
i
,
156
j
,
157
k
,
158
l
,
159
m
,
160
n
,
161
o
,
162
p
,
163
q
,
164
r
,
165
s
,
166
t
,
167
u
,
168
v
,
169
w
,
170
x
,
171
y
,
172
z
= 122,
173
LEFT_BRACE
= 123,
174
PIPE
= 124,
175
RIGHT_BRACE
= 125,
176
ASCIITILDE
= 126,
177
DELETEKEY
= 127,
178
179
KP_0
= 128,
180
KP_1
,
181
KP_2
,
182
KP_3
,
183
KP_4
,
184
KP_5
,
185
KP_6
,
186
KP_7
,
187
KP_8
,
188
KP_9
= 137,
189
190
F1
= 138,
191
F2
,
192
F3
,
193
F4
,
194
F5
,
195
F6
,
196
F7
,
197
F8
,
198
F9
,
199
F10
,
200
F11
,
201
F12
,
202
F13
,
203
F14
,
204
F15
= 152,
205
206
UP
= 153,
207
DOWN
= 154,
208
RIGHT
= 155,
209
LEFT
= 156,
210
INSERT
= 157,
211
HOME
= 158,
212
END
= 159,
213
PGUP
= 160,
214
PGDN
= 161,
215
216
KP_ADD
= 162,
217
KP_SUBTRACT
= 163,
218
KP_MULTIPLY
= 164,
219
KP_DIVIDE
= 165,
220
KP_DECIMAL
= 166,
221
KP_ENTER
= 167,
222
223
NUM_LOCK
= 168,
224
225
// Extended ASCII
226
227
NOBREAKSPACE
= 169,
228
EXCLAM_DOWN
= 170,
229
CENT
= 171,
230
STERLING
= 172,
231
CURRENCY
= 173,
232
YEN
= 174,
233
BROKENBAR
= 175,
234
SECTION
= 176,
235
DIAERESIS
= 177,
236
COPYRIGHT
= 178,
237
ORDFEMININE
= 179,
238
GUILLEMOTLEFT
= 180,
239
NOTSIGN
= 181,
240
HYPHEN
= 182,
241
REGISTERED
= 183,
242
MACRON
= 184,
243
DEGREE
= 185,
244
PLUSMINUS
= 186,
245
TWOSUPERIOR
= 187,
246
THREESUPERIOR
= 188,
247
ACUTE
= 189,
248
MU
= 190,
249
PARAGRAPH
= 191,
250
PERIODCENTRED
= 192,
251
CEDILLA
= 193,
252
ONESUPERIOR
= 194,
253
MASCULINE
= 195,
254
GUILLEMOTRIGHT
= 196,
255
ONEQUARTER
= 197,
256
ONEHALF
= 198,
257
THREEQUARTERS
= 199,
258
QUESTIONDOWN
= 200,
259
AGRAVE
= 201,
260
AACUTE
= 202,
261
ACIRCUMFLEX
= 203,
262
ATILDE
= 204,
263
ADIAERESIS
= 205,
264
ARING
= 206,
265
AE
= 207,
266
CCEDILLA
= 208,
267
EGRAVE
= 209,
268
EACUTE
= 210,
269
ECIRCUMFLEX
= 211,
270
EDIAERESIS
= 212,
271
IGRAVE
= 213,
272
IACUTE
= 214,
273
ICIRCUMFLEX
= 215,
274
IDIAERESIS
= 216,
275
ETH
= 217,
276
NTILDE
= 218,
277
OGRAVE
= 219,
278
OACUTE
= 220,
279
OCIRCUMFLEX
= 221,
280
OTILDE
= 222,
281
ODIAERESIS
= 223,
282
MULTIPLY
= 224,
283
OSLASH
= 225,
284
UGRAVE
= 226,
285
UACUTE
= 227,
286
UCIRCUMFLEX
= 228,
287
UDIAERESIS
= 229,
288
YACUTE
= 230,
289
THORN
= 231,
290
sSHARP
= 232,
291
aGRAVE
= 233,
292
aACUTE
= 234,
293
aCIRCUMFLEX
= 235,
294
aTILDE
= 236,
295
aDIAERESIS
= 237,
296
aRING
= 238,
297
ae
= 239,
298
cCEDILLA
= 240,
299
eGRAVE
= 241,
300
eACUTE
= 242,
301
eCIRCUMFLEX
= 243,
302
eDIAERESIS
= 244,
303
iGRAVE
= 245,
304
iACUTE
= 246,
305
iCIRCUMFLEX
= 247,
306
iDIAERESIS
= 248,
307
eth
= 249,
308
nTILDE
= 250,
309
oGRAVE
= 251,
310
oACUTE
= 252,
311
oCIRCUMFLEX
= 253,
312
oTILDE
= 254,
313
oDIAERESIS
= 255,
314
DIVISION
= 256,
315
oSLASH
= 257,
316
uGRAVE
= 258,
317
uACUTE
= 259,
318
uCIRCUMFLEX
= 260,
319
uDIAERESIS
= 261,
320
yACUTE
= 262,
321
thorn
= 263,
322
yDIAERESIS
= 264,
323
324
// TODO: add other function keys and DisplayObjects not yet known.
325
HELP
= 265,
326
KEYCOUNT
327
};
328
329
enum
type
330
{
331
SWF
,
332
KEY
,
333
ASCII
,
334
TYPES
335
};
336
337
const
unsigned
char
codeMap
[
KEYCOUNT
][
TYPES
] = {
338
//{swfKeyCode, keycode, asciiKeyCode}
339
{0, 0, 0},
// INVALID = 0
340
{0, 0, 0},
// UNKNOWN1
341
{0, 0, 0},
// UNKNOWN2
342
{0, 0, 0},
// UNKNOWN3
343
{0, 0, 0},
// UNKNOWN4
344
{0, 0, 0},
// UNKNOWN5
345
{0, 0, 0},
// UNKNOWN6
346
{0, 0, 0},
// UNKNOWN7
347
{8, 8, 8},
// BACKSPACE = 8
348
{18, 9, 9},
// TAB = 9
349
{0, 0, 0},
// UNKNOWN10
350
{0, 0, 0},
// UNKNOWN11
351
{0, 12, 0},
// CLEAR = 12
352
{13, 13, 13},
// ENTER = 13
353
{0, 0, 0},
// UNKNOWN14
354
{0, 0, 0},
// UNKNOWN15
355
{0, 16, 0},
// SHIFT = 16
356
{0, 17, 0},
// CONTROL = 17
357
{0, 18, 0},
// ALT = 18
358
{0, 19, 0},
// PAUSE = 19
359
{0, 20, 0},
// CAPSLOCK = 20
360
{0, 0, 0},
// UNKNOWN21
361
{0, 0, 0},
// UNKNOWN22
362
{0, 0, 0},
// UNKNOWN23
363
{0, 0, 0},
// UNKNOWN24
364
{0, 0, 0},
// UNKNOWN25
365
{0, 0, 0},
// UNKNOWN26
366
{19, 27, 27},
// ESCAPE = 27
367
{0, 0, 0},
// UNKNOWN28
368
{0, 0, 0},
// UNKNOWN29
369
{0, 0, 0},
// UNKNOWN30
370
{0, 0, 0},
// UNKNOWN31
371
{32, 32, 32},
// SPACE = 32
372
{33, 49, 33},
// EXCLAM = 33
373
{34, 222, 34},
// DOUBLE_QUOTE = 34
374
{35, 51, 35},
// HASH = 35
375
{36, 52, 36},
// DOLLAR = 36
376
{37, 53, 37},
// PERCENT = 37
377
{38, 55, 38},
// AMPERSAND = 38
378
{39, 222, 39},
// SINGLE_QUOTE = 39
379
{40, 57, 40},
// PAREN_LEFT = 40
380
{41, 48, 41},
// PAREN_RIGHT = 41
381
{42, 56, 42},
// ASTERISK = 42
382
{43, 187, 43},
// PLUS = 43
383
{44, 188, 44},
// COMMA = 44
384
{45, 189, 45},
// MINUS = 45
385
{46, 190, 46},
// PERIOD = 46
386
{47, 191, 47},
// SLASH = 47
387
{48, 48, 48},
// 0 = 48
388
{49, 49, 49},
// 1
389
{50, 50, 50},
// 2
390
{51, 51, 51},
// 3
391
{52, 52, 52},
// 4
392
{53, 53, 53},
// 5
393
{54, 54, 54},
// 6
394
{55, 55, 55},
// 7
395
{56, 56, 56},
// 8
396
{57, 57, 57},
// 9 = 57
397
{58, 186, 58},
// COLON = 58
398
{59, 186, 59},
// SEMICOLON = 59
399
{60, 188, 60},
// LESS = 60
400
{61, 187, 61},
// EQUALS = 61
401
{62, 190, 62},
// MORE = 62
402
{63, 191, 63},
// QUESTION = 63
403
{64, 50, 64},
// AT = 64
404
{65, 65, 65},
// A = 65
405
{66, 66, 66},
// B
406
{67, 67, 67},
// C
407
{68, 68, 68},
// D
408
{69, 69, 69},
// E
409
{70, 70, 70},
// F
410
{71, 71, 71},
// G
411
{72, 72, 72},
// H
412
{73, 73, 73},
// I
413
{74, 74, 74},
// J
414
{75, 75, 75},
// K
415
{76, 76, 76},
// L
416
{77, 77, 77},
// M
417
{78, 78, 78},
// N
418
{79, 79, 79},
// O
419
{80, 80, 80},
// P
420
{81, 81, 81},
// Q
421
{82, 82, 82},
// R
422
{83, 83, 83},
// S
423
{84, 84, 84},
// T
424
{85, 85, 85},
// U
425
{86, 86, 86},
// V
426
{87, 87, 87},
// W
427
{88, 88, 88},
// X
428
{89, 89, 89},
// Y
429
{90, 90, 90},
// Z = 90
430
{91, 219, 91},
// LEFT_BRACKET = 91
431
{92, 220, 92},
// BACKSLASH = 92
432
{93, 221, 93},
// RIGHT_BRACKET = 93
433
{94, 54, 94},
// CARET = 94
434
{95, 189, 95},
// UNDERSCORE = 95
435
{96, 192, 96},
// BACKQUOTE = 96
436
{97, 65, 97},
// a = 97
437
{98, 66, 98},
// b
438
{99, 67, 99},
// c
439
{100,68, 100},
// d
440
{101,69, 101},
// e
441
{102,70, 102},
// f
442
{103,71, 103},
// g
443
{104,72, 104},
// h
444
{105,73, 105},
// i
445
{106,74, 106},
// j
446
{107,75, 107},
// k
447
{108,76, 108},
// l
448
{109,77, 109},
// m
449
{110,78, 110},
// n
450
{111,79, 111},
// o
451
{112,80, 112},
// p
452
{113,81, 113},
// q
453
{114,82, 114},
// r
454
{115,83, 115},
// s
455
{116,84, 116},
// t
456
{117,85, 117},
// u
457
{118,86, 118},
// v
458
{119,87, 119},
// w
459
{120,88, 120},
// x
460
{121,89, 121},
// y
461
{122,90, 122},
// z = 122
462
{123,219,123},
// LEFT_BRACE = 123
463
{124,220,124},
// PIPE = 124
464
{125,221,125},
// RIGHT_BRACE = 125
465
{126,192,126},
// ASCIITILDE = 126
466
{6, 46, 127},
// DELETE = 127
467
{48, 96, 48},
// KP_0 = 128
468
{49, 97, 49},
// KP_1
469
{50, 98, 50},
// KP_2
470
{51, 99, 51},
// KP_3
471
{52, 100, 52},
// KP_4
472
{53, 101, 53},
// KP_5
473
{54, 102, 54},
// KP_6
474
{55, 103, 55},
// KP_7
475
{56, 104, 56},
// KP_8
476
{57, 105, 57},
// KP_9
477
{0, 112, 0},
// F1 = 138
478
{0, 113, 0},
// F2
479
{0, 114, 0},
// F3
480
{0, 115, 0},
// F4
481
{0, 116, 0},
// F5
482
{0, 117, 0},
// F6
483
{0, 118, 0},
// F7
484
{0, 119, 0},
// F8
485
{0, 120, 0},
// F9
486
{0, 121, 0},
// F10
487
{0, 122, 0},
// F11
488
{0, 123, 0},
// F12
489
{0, 124, 0},
// F13
490
{0, 125, 0},
// F14
491
{0, 126, 0},
// F15 = 152
492
{14, 38, 0},
// UP = 153
493
{15, 40, 0},
// DOWN = 154
494
{2, 39, 0},
// RIGHT = 155
495
{1, 37, 0},
// LEFT = 156
496
{5, 45, 0},
// INSERT = 157
497
{3, 36, 0},
// HOME = 158
498
{4, 35, 0},
// END = 159
499
{16, 33, 0},
// PAGEUP = 160
500
{17, 34, 0},
// PAGEDOWN = 161
501
{0, 107, 43},
// KP_ADD = 162
502
{0, 109, 45},
// KP_SUBTRACT = 163
503
{0, 106, 42},
// KP_MULITPLY = 164
504
{0, 111, 47},
// KP_DIVIDE = 165
505
{0, 110, 46},
// KP_DECIMAL = 166
506
{13, 13, 13},
// KP_ENTER = 167
507
{0, 144, 0},
// NUMLOCK = 168
508
{0, 160, 160},
// NOBREAKSPACE = 169
509
{0, 161, 161},
// EXCLAM_DOWN = 170
510
{0, 162, 162},
// CENT = 171
511
{0, 163, 163},
// STERLING = 172
512
{0, 164, 164},
// CURRENCY = 173
513
{0, 165, 165},
// YEN = 174
514
{0, 166, 166},
// BROKENBAR = 175
515
{0, 167, 167},
// SECTION = 176
516
{0, 168, 168},
// DIAERESIS = 177
517
{0, 169, 169},
// COPYRIGHT = 178
518
{0, 170, 170},
// ORDFEMININE = 179
519
{0, 171, 171},
// GUILLEMOTLEFT = 180
520
{0, 172, 172},
// NOTSIGN = 181
521
{0, 173, 173},
// HYPHEN = 182
522
{0, 174, 174},
// REGISTERED = 183
523
{0, 175, 175},
// MACRON = 184
524
{0, 176, 176},
// DEGREE = 185
525
{0, 177, 177},
// PLUSMINUS = 186
526
{0, 178, 178},
// TWOSUPERIOR = 187
527
{0, 179, 179},
// THREESUPERIOR = 188
528
{0, 180, 180},
// ACUTE = 189
529
{0, 181, 181},
// MU = 190
530
{0, 182, 182},
// PARAGRAPH = 191
531
{0, 183, 183},
// PERIODCENTRED = 192
532
{0, 184, 184},
// CEDILLA = 193
533
{0, 185, 185},
// ONESUPERIOR = 194
534
{0, 186, 186},
// MASCULINE = 195
535
{0, 187, 187},
// GUILLEMOTRIGHT = 196
536
{0, 188, 188},
// ONEQUARTER = 197
537
{0, 189, 189},
// ONEHALF = 198
538
{0, 190, 190},
// THREEQUARTERS = 199
539
{0, 191, 191},
// QUESTIONDOWN = 200
540
{0, 192, 192},
// AGRAVE = 201
541
{0, 193, 193},
// AACUTE = 202
542
{0, 194, 194},
// ACIRCUMFLEX = 203
543
{0, 195, 195},
// ATILDE = 204
544
{0, 196, 196},
// ADIAERISIS = 205
545
{0, 197, 197},
// ARING = 206
546
{0, 198, 198},
// AE = 207
547
{0, 199, 199},
// CCEDILLA = 208
548
{0, 200, 200},
// EGRAVE = 209
549
{0, 201, 201},
// EACUTE = 210
550
{0, 202, 202},
// ECIRCUMFLEX = 211
551
{0, 203, 203},
// EDIAERESIS = 212
552
{0, 204, 204},
// IGRAVE = 213
553
{0, 205, 205},
// IACUTE = 214
554
{0, 206, 206},
// ICIRCUMFLEX = 215
555
{0, 207, 207},
// IDIAERESIS = 216
556
{0, 208, 208},
// ETH = 217
557
{0, 209, 209},
// NTILDE = 218
558
{0, 210, 210},
// OGRAVE = 219
559
{0, 211, 211},
// OACUTE = 220
560
{0, 212, 212},
// OCIRCUMFLEX = 221
561
{0, 213, 213},
// OTILDE = 222
562
{0, 214, 214},
// ODIAERESIS = 223
563
{0, 215, 215},
// MULTIPLY = 224
564
{0, 216, 116},
// OSLASH = 225
565
{0, 217, 217},
// UGRAVE = 226
566
{0, 218, 218},
// UACTUE = 227
567
{0, 219, 219},
// UCIRCUMFLEX = 228
568
{0, 220, 220},
// UDIAERESIS = 229
569
{0, 221, 221},
// ZACUTE = 230
570
{0, 222, 222},
// THORN = 231
571
{0, 223, 223},
// sSHARP = 232
572
{0, 224, 224},
// aTILDE = 233
573
{0, 225, 225},
// aACUTE = 234
574
{0, 226, 226},
// aCIRCUMFLEX = 235
575
{0, 227, 227},
// aTILDE = 236
576
{0, 228, 228},
// aDIAERESIS = 237
577
{0, 229, 229},
// aRING = 238
578
{0, 230, 230},
// ae = 239
579
{0, 231, 231},
// cCEDILLA = 240
580
{0, 232, 232},
// eGRAVE = 241
581
{0, 233, 233},
// eACUTE = 242
582
{0, 234, 234},
// eCIRCUMFLEX = 243
583
{0, 235, 235},
// eDIAERESIS = 244
584
{0, 236, 236},
// iGRAVE = 245
585
{0, 237, 237},
// iACUTE = 246
586
{0, 238, 238},
// iCIRCUMFLEX = 247
587
{0, 239, 239},
// iDIAERESIS = 248
588
{0, 240, 240},
// eth = 249
589
{0, 241, 241},
// nTILDE = 250
590
{0, 242, 242},
// oTILDE = 251
591
{0, 243, 243},
// oACUTE = 252
592
{0, 244, 244},
// oCIRCUMFLEX = 253
593
{0, 245, 245},
// oTILDE = 254
594
{0, 246, 246},
// oDIAERESIS = 255
595
{0, 247, 247},
// DIVISION = 256
596
{0, 248, 248},
// oSLASH = 257
597
{0, 249, 249},
// uGRAVE = 258
598
{0, 250, 250},
// uACUTE = 259
599
{0, 251, 251},
// uCIRCUMFLEX = 260
600
{0, 252, 252},
// uDIAERESIS = 261
601
{0, 253, 253},
// yACUTE = 262
602
{0, 254, 254},
// thorn = 263
603
{0, 255, 255},
// yDIAERESIS = 264
604
{0, 0, 0},
// HELP (untested)
605
};
606
607
}
// end namespace key
608
609
}
// end namespace gnash
610
611
#endif // GNASHKEY_H
Generated on Mon Aug 26 2013 23:44:15 for Gnash by
1.8.4