FabGL
ESP32 Display Controller and Graphics Library
codepages.cpp
1
/*
2
Created by Fabrizio Di Vittorio (fdivitto2013@gmail.com) - <http://www.fabgl.com>
3
Copyright (c) 2019-2022 Fabrizio Di Vittorio.
4
All rights reserved.
5
6
7
* Please contact fdivitto2013@gmail.com if you need a commercial license.
8
9
10
* This library and related software is available under GPL v3.
11
12
FabGL is free software: you can redistribute it and/or modify
13
it under the terms of the GNU General Public License as published by
14
the Free Software Foundation, either version 3 of the License, or
15
(at your option) any later version.
16
17
FabGL is distributed in the hope that it will be useful,
18
but WITHOUT ANY WARRANTY; without even the implied warranty of
19
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
GNU General Public License for more details.
21
22
You should have received a copy of the GNU General Public License
23
along with FabGL. If not, see <http://www.gnu.org/licenses/>.
24
*/
25
26
27
#include "
codepages.h
"
28
29
30
#pragma GCC optimize ("O2"
)
31
32
33
34
namespace
fabgl {
35
36
37
39
// Codepage 437
40
41
const
VirtualKeyToASCII VK2ASCII437[] = {
42
43
{
VK_GRAVE_a
, 0x85 },
// à
44
{
VK_GRAVE_e
, 0x8a },
// è
45
{
VK_ACUTE_e
, 0x82 },
// é
46
{
VK_GRAVE_i
, 0x8d },
// ì
47
{
VK_GRAVE_o
, 0x95 },
// ò
48
{
VK_GRAVE_u
, 0x97 },
// ù
49
{
VK_CEDILLA_c
, 0x87 },
// ç
50
{
VK_ESZETT
, 0xe1 },
// ß
51
{
VK_UMLAUT_u
, 0x81 },
// ü
52
{
VK_UMLAUT_o
, 0x94 },
// ö
53
{
VK_UMLAUT_a
, 0x84 },
// ä
54
{
VK_ACUTEACCENT
, 0x27 },
// ´ -> ' (not in cp437)
55
{
VK_POUND
, 0x9c },
// £
56
{
VK_EURO
, 0xee },
// € -> ε (not in cp437)
57
{
VK_DEGREE
, 0xf8 },
// °
58
{
VK_NEGATION
, 0xaa },
// ¬
59
{
VK_SQUARE
, 0xfd },
// ²
60
{
VK_MU
, 0xe6 },
// µ
61
{
VK_CEDILLA_C
, 0x80 },
// Ç
62
{
VK_TILDE_n
, 0xa4 },
// ñ
63
{
VK_TILDE_N
, 0xa5 },
// Ñ
64
{
VK_UPPER_a
, 0xa6 },
// ª
65
{
VK_ACUTE_a
, 0xa0 },
// á
66
{
VK_ACUTE_o
, 0xa2 },
// ó
67
{
VK_ACUTE_u
, 0xa3 },
// ú
68
{
VK_UMLAUT_i
, 0x8b },
// ï
69
{
VK_EXCLAIM_INV
, 0xad },
// ¡
70
{
VK_QUESTION_INV
, 0xa8 },
// ¿
71
{
VK_ACUTE_A
, 0x41 },
// Á -> A (not in cp437)
72
{
VK_ACUTE_E
, 0x90 },
// É
73
{
VK_ACUTE_I
, 0x49 },
// Í -> I (not in cp437)
74
{
VK_ACUTE_O
, 0xe0 },
// Ó -> O (not in cp437)
75
{
VK_ACUTE_U
, 0x55 },
// Ú -> U (not in cp437)
76
{
VK_GRAVE_A
, 0x41 },
// À -> A (not in cp437)
77
{
VK_GRAVE_E
, 0x45 },
// È -> E (not in cp437)
78
{
VK_GRAVE_I
, 0x49 },
// Ì -> I (not in cp437)
79
{
VK_GRAVE_O
, 0x4f },
// Ò -> O (not in cp437)
80
{
VK_GRAVE_U
, 0x55 },
// Ù -> U (not in cp437)
81
{
VK_INTERPUNCT
, 0xfa },
// ·
82
{
VK_UMLAUT_e
, 0x89 },
// ë
83
{
VK_UMLAUT_A
, 0x8e },
// Ä
84
{
VK_UMLAUT_E
, 0x45 },
// Ë -> E (not in cp437)
85
{
VK_UMLAUT_I
, 0x49 },
// Ï -> I (not in cp437)
86
{
VK_UMLAUT_O
, 0x99 },
// Ö
87
{
VK_UMLAUT_U
, 0x9a },
// Ü
88
{
VK_CARET_a
, 0x83 },
// â
89
{
VK_CARET_e
, 0x88 },
// ê
90
{
VK_CARET_i
, 0x8c },
// î
91
{
VK_CARET_o
, 0x93 },
// ô
92
{
VK_CARET_u
, 0x96 },
// û
93
{
VK_CARET_A
, 0x41 },
// Â -> A (not in cp437)
94
{
VK_CARET_E
, 0x45 },
// Ê -> E (not in cp437)
95
{
VK_CARET_I
, 0x49 },
// Î -> I (not in cp437)
96
{
VK_CARET_O
, 0x4f },
// Ô -> O (not in cp437)
97
{
VK_CARET_U
, 0x55 },
// Û -> U (not in cp437)
98
{
VK_TILDE_a
, 0x61 },
// ã -> a (not in cp437)
99
{
VK_TILDE_A
, 0x41 },
// Ã -> A (not in cp437)
100
{
VK_TILDE_o
, 0x6f },
// õ -> o (not in cp437)
101
{
VK_TILDE_O
, 0x4f },
// Õ -> O (not in cp437)
102
{
VK_GRAVE_y
, 0x79 },
// ỳ -> y (not in cp437)
103
{
VK_GRAVE_Y
, 0x59 },
// Ỳ -> Y (not in cp437)
104
{
VK_ACUTE_y
, 0x79 },
// ý -> y (not in cp437)
105
{
VK_ACUTE_Y
, 0x59 },
// Ý -> Y (not in cp437)
106
{
VK_CARET_y
, 0x79 },
// ŷ -> y (not in cp437)
107
{
VK_CARET_Y
, 0x59 },
// Ŷ -> Y (not in cp437)
108
{
VK_UMLAUT_y
, 0x98 },
// ÿ
109
{
VK_UMLAUT_Y
, 0x59 },
// Ÿ -> Y (not in cp437)
110
111
{
VK_NONE
, 0x00 },
// end of table
112
};
113
114
const
CodePage CodePage437 = {
115
437,
116
VK2ASCII437,
117
};
118
119
120
122
// Codepage 1252
123
124
const
VirtualKeyToASCII VK2ASCII1252[] = {
125
{
VK_GRAVE_a
, 0xe0 },
// à
126
{
VK_GRAVE_e
, 0xe8 },
// è
127
{
VK_ACUTE_e
, 0xe9 },
// é
128
{
VK_GRAVE_i
, 0xec },
// ì
129
{
VK_GRAVE_o
, 0xf2 },
// ò
130
{
VK_GRAVE_u
, 0xf9 },
// ù
131
{
VK_CEDILLA_c
, 0xe7 },
// ç
132
{
VK_ESZETT
, 0xdf },
// ß
133
{
VK_UMLAUT_u
, 0xfc },
// ü
134
{
VK_UMLAUT_o
, 0xf6 },
// ö
135
{
VK_UMLAUT_a
, 0xe4 },
// ä
136
{
VK_ACUTEACCENT
, 0xb4 },
// ´
137
{
VK_POUND
, 0xa3 },
// £
138
{
VK_EURO
, 0x80 },
// €
139
{
VK_DEGREE
, 0xb0 },
// °
140
{
VK_SECTION
, 0xa7 },
// §
141
{
VK_NEGATION
, 0xac },
// ¬
142
{
VK_SQUARE
, 0xb2 },
// ²
143
{
VK_MU
, 0xb5 },
// µ
144
{
VK_CEDILLA_C
, 0xc7 },
// Ç
145
{
VK_TILDE_n
, 0xf1 },
// ñ
146
{
VK_TILDE_N
, 0xd1 },
// Ñ
147
{
VK_UPPER_a
, 0xaa },
// ª
148
{
VK_ACUTE_a
, 0xe1 },
// á
149
{
VK_ACUTE_o
, 0xf3 },
// ó
150
{
VK_ACUTE_u
, 0xfa },
// ú
151
{
VK_UMLAUT_i
, 0xef },
// ï
152
{
VK_EXCLAIM_INV
, 0xa1 },
// ¡
153
{
VK_QUESTION_INV
, 0xbf },
// ¿
154
{
VK_ACUTE_A
, 0xc1 },
// Á
155
{
VK_ACUTE_E
, 0xc9 },
// É
156
{
VK_ACUTE_I
, 0xcd },
// Í
157
{
VK_ACUTE_O
, 0xd3 },
// Ó
158
{
VK_ACUTE_U
, 0xda },
// Ú
159
{
VK_GRAVE_A
, 0xc0 },
// À
160
{
VK_GRAVE_E
, 0xc8 },
// È
161
{
VK_GRAVE_I
, 0xcc },
// Ì
162
{
VK_GRAVE_O
, 0xd2 },
// Ò
163
{
VK_GRAVE_U
, 0xd9 },
// Ù
164
{
VK_INTERPUNCT
, 0xb7 },
// ·
165
{
VK_DIAERESIS
, 0xa8 },
// ¨
166
{
VK_UMLAUT_e
, 0xeb },
// ë
167
{
VK_UMLAUT_A
, 0xc4 },
// Ä
168
{
VK_UMLAUT_E
, 0xcb },
// Ë
169
{
VK_UMLAUT_I
, 0xcf },
// Ï
170
{
VK_UMLAUT_O
, 0xd6 },
// Ö
171
{
VK_UMLAUT_U
, 0xdc },
// Ü
172
{
VK_CARET_a
, 0xe2 },
// â
173
{
VK_CARET_e
, 0xea },
// ê
174
{
VK_CARET_i
, 0xee },
// î
175
{
VK_CARET_o
, 0xf4 },
// ô
176
{
VK_CARET_u
, 0xfb },
// û
177
{
VK_CARET_A
, 0xc2 },
// Â
178
{
VK_CARET_E
, 0xca },
// Ê
179
{
VK_CARET_I
, 0xce },
// Î
180
{
VK_CARET_O
, 0xd4 },
// Ô
181
{
VK_CARET_U
, 0xdb },
// Û
182
{
VK_TILDE_a
, 0xe3 },
// ã
183
{
VK_TILDE_A
, 0xc3 },
// Ã
184
{
VK_TILDE_o
, 0xf5 },
// õ
185
{
VK_TILDE_O
, 0xd5 },
// Õ
186
{
VK_GRAVE_y
, 0x79 },
// ỳ -> y (not in cp1252)
187
{
VK_GRAVE_Y
, 0x59 },
// Ỳ -> Y (not in cp1252)
188
{
VK_ACUTE_y
, 0xfd },
// ý
189
{
VK_ACUTE_Y
, 0xdd },
// Ý
190
{
VK_CARET_y
, 0x79 },
// ŷ -> y (not in cp1252)
191
{
VK_CARET_Y
, 0x59 },
// Ŷ -> Y (not in cp1252)
192
{
VK_UMLAUT_y
, 0xff },
// ÿ
193
{
VK_UMLAUT_Y
, 0x9f },
// Ÿ
194
195
{
VK_NONE
, 0x00 },
// end of table
196
};
197
198
const
CodePage CodePage1252 = {
199
1252,
200
VK2ASCII1252,
201
};
202
203
204
205
207
// virtualKeyToASCII
208
209
210
// -1 = virtual key cannot be translated to ASCII
211
// of VirtualKeyItem uses:
212
// - .vk
213
// - .CTRL
214
// - .SHIFT
215
// - .SCROLLLOCK
216
int
virtualKeyToASCII(VirtualKeyItem
const
& item, CodePage
const
* codepage)
217
{
218
int
r = -1;
219
220
if
(item.CTRL) {
221
222
// CTRL + ....
223
224
switch
(item.vk) {
225
226
case
VK_SPACE
:
227
r = ASCII_NUL;
// CTRL SPACE = NUL
228
break
;
229
230
case
VK_BACKSPACE
:
231
r = ASCII_DEL;
// CTRL BACKSPACE = DEL
232
break
;
233
234
case
VK_DELETE
:
235
case
VK_KP_DELETE
:
236
r = ASCII_DEL;
// DELETE = dEL
237
break
;
238
239
case
VK_RETURN
:
240
case
VK_KP_ENTER
:
241
r = ASCII_LF;
// CTRL ENTER = LF
242
break
;
243
244
case
VK_ESCAPE
:
245
r = ASCII_ESC;
// CTRL ESCAPE = ESC
246
break
;
247
248
case
VK_2
:
249
r = ASCII_NUL;
// CTRL 2 = NUL
250
break
;
251
252
case
VK_6
:
253
r = ASCII_RS;
// CTRL 6 = RS
254
break
;
255
256
case
VK_a
...
VK_z
:
257
r = item.vk -
VK_a
+ ASCII_SOH ;
// CTRL alpha = SOH (a) ...SUB (z)
258
break
;
259
260
case
VK_A
...
VK_Z
:
261
r = item.vk -
VK_A
+ ASCII_SOH;
// CTRL alpha = SOH (A) ...SUB (Z)
262
break
;
263
264
case
VK_MINUS
:
265
r = ASCII_US;
// CTRL - = US
266
break
;
267
268
case
VK_BACKSLASH
:
269
r = ASCII_FS;
// CTRL \ = FS
270
break
;
271
272
case
VK_QUESTION
:
273
r = ASCII_US;
// CTRL ? = US
274
break
;
275
276
case
VK_LEFTBRACKET
:
277
r = ASCII_ESC;
// CTRL [ = ESC
278
break
;
279
280
case
VK_RIGHTBRACKET
:
281
r = ASCII_GS;
// CTRL ] = GS
282
break
;
283
284
case
VK_TILDE
:
285
r = ASCII_RS;
// CTRL ~ = RS
286
break
;
287
288
default
:
289
break
;
290
291
}
292
293
}
else
{
294
295
switch
(item.vk) {
296
297
case
VK_BACKSPACE
:
298
r = ASCII_BS;
// BACKSPACE = BS
299
break
;
300
301
case
VK_RETURN
:
302
case
VK_KP_ENTER
:
303
r = ASCII_CR;
// ENTER = CR
304
break
;
305
306
case
VK_TAB
:
307
if
(!item.SHIFT)
308
r = ASCII_HT;
// TAB = HT
309
break
;
310
311
case
VK_ESCAPE
:
312
r = ASCII_ESC;
// ESCAPE = ESC
313
break
;
314
315
case
VK_SCROLLLOCK
:
316
r = item.SCROLLLOCK ? ASCII_XOFF : ASCII_XON;
// SCROLLLOCK = switch XOFF / XON
317
break
;
318
319
case
VK_0
...
VK_9
:
320
r = item.vk -
VK_0
+
'0'
;
// digits
321
break
;
322
323
case
VK_KP_0
...
VK_KP_9
:
324
r = item.vk -
VK_KP_0
+
'0'
;
// keypad digits
325
break
;
326
327
case
VK_a
...
VK_z
:
328
r = item.vk -
VK_a
+
'a'
;
// lowercase alpha
329
break
;
330
331
case
VK_A
...
VK_Z
:
332
r = item.vk -
VK_A
+
'A'
;
// uppercase alpha
333
break
;
334
335
case
VK_SPACE
:
336
r = ASCII_SPC;
// SPACE
337
break
;
338
339
case
VK_QUOTE
:
340
r =
'\''
;
// '
341
break
;
342
343
case
VK_QUOTEDBL
:
344
r =
'"'
;
// "
345
break
;
346
347
case
VK_EQUALS
:
348
r =
'='
;
// =
349
break
;
350
351
case
VK_MINUS
:
352
case
VK_KP_MINUS
:
353
r =
'-'
;
// -
354
break
;
355
356
case
VK_PLUS
:
357
case
VK_KP_PLUS
:
358
r =
'+'
;
// +
359
break
;
360
361
case
VK_KP_MULTIPLY
:
362
case
VK_ASTERISK
:
363
r =
'*'
;
// *
364
break
;
365
366
case
VK_KP_DIVIDE
:
367
case
VK_SLASH
:
368
r =
'/'
;
// /
369
break
;
370
371
case
VK_KP_PERIOD
:
372
case
VK_PERIOD
:
373
r =
'.'
;
// .
374
break
;
375
376
case
VK_COLON
:
377
r =
':'
;
// :
378
break
;
379
380
case
VK_COMMA
:
381
r =
','
;
// ,
382
break
;
383
384
case
VK_SEMICOLON
:
385
r =
';'
;
// ;
386
break
;
387
388
case
VK_AMPERSAND
:
389
r =
'&'
;
// &
390
break
;
391
392
case
VK_VERTICALBAR
:
393
r =
'|'
;
// |
394
break
;
395
396
case
VK_HASH
:
397
r =
'#'
;
// #
398
break
;
399
400
case
VK_AT
:
401
r =
'@'
;
// @
402
break
;
403
404
case
VK_CARET
:
405
r =
'^'
;
// ^
406
break
;
407
408
case
VK_DOLLAR
:
409
r =
'$'
;
// $
410
break
;
411
412
case
VK_GRAVEACCENT
:
413
r = 0x60;
// `
414
break
;
415
416
case
VK_PERCENT
:
417
r =
'%'
;
// %
418
break
;
419
420
case
VK_EXCLAIM
:
421
r =
'!'
;
// !
422
break
;
423
424
case
VK_LEFTBRACE
:
425
r =
'{'
;
// {
426
break
;
427
428
case
VK_RIGHTBRACE
:
429
r =
'}'
;
// }
430
break
;
431
432
case
VK_LEFTPAREN
:
433
r =
'('
;
// (
434
break
;
435
436
case
VK_RIGHTPAREN
:
437
r =
')'
;
// )
438
break
;
439
440
case
VK_LESS
:
441
r =
'<'
;
// <
442
break
;
443
444
case
VK_GREATER
:
445
r =
'>'
;
// >
446
break
;
447
448
case
VK_UNDERSCORE
:
449
r =
'_'
;
// _
450
break
;
451
452
case
VK_BACKSLASH
:
453
r =
'\\'
;
// backslash
454
break
;
455
456
case
VK_QUESTION
:
457
r =
'?'
;
// ?
458
break
;
459
460
case
VK_LEFTBRACKET
:
461
r =
'['
;
// [
462
break
;
463
464
case
VK_RIGHTBRACKET
:
465
r =
']'
;
// ]
466
break
;
467
468
case
VK_TILDE
:
469
r =
'~'
;
// ~
470
break
;
471
472
default
:
473
// look into codepage table
474
if
(codepage) {
475
for
(
auto
cpitem = codepage->convTable; cpitem->vk !=
VK_NONE
; ++cpitem) {
476
if
(item.vk == cpitem->vk) {
477
r = cpitem->ASCII;
478
break
;
479
}
480
}
481
}
482
break
;
483
484
}
485
486
}
487
488
return
r;
489
}
490
491
492
493
494
}
// fabgl namespace
codepages.h
This file contains codepages declarations.
fabgl::VK_GRAVE_e
@ VK_GRAVE_e
Definition:
fabutils.h:1280
fabgl::VK_CARET_A
@ VK_CARET_A
Definition:
fabutils.h:1328
fabgl::VK_GRAVE_y
@ VK_GRAVE_y
Definition:
fabutils.h:1284
fabgl::VK_PERIOD
@ VK_PERIOD
Definition:
fabutils.h:1191
fabgl::VK_ACUTEACCENT
@ VK_ACUTEACCENT
Definition:
fabutils.h:1177
fabgl::VK_CARET_o
@ VK_CARET_o
Definition:
fabutils.h:1324
fabgl::VK_RIGHTBRACE
@ VK_RIGHTBRACE
Definition:
fabutils.h:1207
fabgl::VK_GRAVE_I
@ VK_GRAVE_I
Definition:
fabutils.h:1295
fabgl::VK_GRAVE_Y
@ VK_GRAVE_Y
Definition:
fabutils.h:1298
fabgl::VK_ESZETT
@ VK_ESZETT
Definition:
fabutils.h:1347
fabgl::VK_KP_PERIOD
@ VK_KP_PERIOD
Definition:
fabutils.h:1190
fabgl::VK_GRAVE_U
@ VK_GRAVE_U
Definition:
fabutils.h:1297
fabgl::VK_GRAVE_a
@ VK_GRAVE_a
Definition:
fabutils.h:1279
fabgl::VK_RETURN
@ VK_RETURN
Definition:
fabutils.h:1249
fabgl::VK_ESCAPE
@ VK_ESCAPE
Definition:
fabutils.h:1229
fabgl::VK_CARET_U
@ VK_CARET_U
Definition:
fabutils.h:1332
fabgl::VK_UPPER_a
@ VK_UPPER_a
Definition:
fabutils.h:1346
fabgl::VK_GRAVE_E
@ VK_GRAVE_E
Definition:
fabutils.h:1294
fabgl::VK_COMMA
@ VK_COMMA
Definition:
fabutils.h:1193
fabgl::VK_UMLAUT_e
@ VK_UMLAUT_e
Definition:
fabutils.h:1308
fabgl::VK_MU
@ VK_MU
Definition:
fabutils.h:1354
fabgl::VK_TILDE_a
@ VK_TILDE_a
Definition:
fabutils.h:1338
fabgl::VK_9
@ VK_9
Definition:
fabutils.h:1111
fabgl::VK_CEDILLA_c
@ VK_CEDILLA_c
Definition:
fabutils.h:1335
fabgl::VK_TILDE
@ VK_TILDE
Definition:
fabutils.h:1217
fabgl::VK_UMLAUT_a
@ VK_UMLAUT_a
Definition:
fabutils.h:1307
fabgl::VK_SPACE
@ VK_SPACE
Definition:
fabutils.h:1100
fabgl::VK_LEFTBRACKET
@ VK_LEFTBRACKET
Definition:
fabutils.h:1208
fabgl::VK_UMLAUT_A
@ VK_UMLAUT_A
Definition:
fabutils.h:1314
fabgl::VK_KP_9
@ VK_KP_9
Definition:
fabutils.h:1121
fabgl::VK_ACUTE_A
@ VK_ACUTE_A
Definition:
fabutils.h:1300
fabgl::VK_ACUTE_a
@ VK_ACUTE_a
Definition:
fabutils.h:1286
fabgl::VK_POUND
@ VK_POUND
Definition:
fabutils.h:1201
fabgl::VK_CARET_e
@ VK_CARET_e
Definition:
fabutils.h:1322
fabgl::VK_HASH
@ VK_HASH
Definition:
fabutils.h:1197
fabgl::VK_ACUTE_e
@ VK_ACUTE_e
Definition:
fabutils.h:1287
fabgl::VK_UMLAUT_U
@ VK_UMLAUT_U
Definition:
fabutils.h:1318
fabgl::VK_UMLAUT_O
@ VK_UMLAUT_O
Definition:
fabutils.h:1317
fabgl::VK_GREATER
@ VK_GREATER
Definition:
fabutils.h:1213
fabgl::VK_KP_MULTIPLY
@ VK_KP_MULTIPLY
Definition:
fabutils.h:1185
fabgl::VK_LEFTPAREN
@ VK_LEFTPAREN
Definition:
fabutils.h:1210
fabgl::VK_GRAVE_o
@ VK_GRAVE_o
Definition:
fabutils.h:1282
fabgl::VK_CARET_I
@ VK_CARET_I
Definition:
fabutils.h:1330
fabgl::VK_VERTICALBAR
@ VK_VERTICALBAR
Definition:
fabutils.h:1196
fabgl::VK_a
@ VK_a
Definition:
fabutils.h:1123
fabgl::VK_SLASH
@ VK_SLASH
Definition:
fabutils.h:1189
fabgl::VK_DEGREE
@ VK_DEGREE
Definition:
fabutils.h:1215
fabgl::VK_RIGHTPAREN
@ VK_RIGHTPAREN
Definition:
fabutils.h:1211
fabgl::VK_QUOTE
@ VK_QUOTE
Definition:
fabutils.h:1178
fabgl::VK_SEMICOLON
@ VK_SEMICOLON
Definition:
fabutils.h:1194
fabgl::VK_QUESTION_INV
@ VK_QUESTION_INV
Definition:
fabutils.h:1349
fabgl::VK_GRAVE_A
@ VK_GRAVE_A
Definition:
fabutils.h:1293
fabgl::VK_z
@ VK_z
Definition:
fabutils.h:1148
fabgl::VK_UMLAUT_I
@ VK_UMLAUT_I
Definition:
fabutils.h:1316
fabgl::VK_ASTERISK
@ VK_ASTERISK
Definition:
fabutils.h:1186
fabgl::VK_UNDERSCORE
@ VK_UNDERSCORE
Definition:
fabutils.h:1214
fabgl::VK_ACUTE_Y
@ VK_ACUTE_Y
Definition:
fabutils.h:1305
fabgl::VK_KP_DELETE
@ VK_KP_DELETE
Definition:
fabutils.h:1237
fabgl::VK_ACUTE_O
@ VK_ACUTE_O
Definition:
fabutils.h:1303
fabgl::VK_AT
@ VK_AT
Definition:
fabutils.h:1198
fabgl::VK_CARET_u
@ VK_CARET_u
Definition:
fabutils.h:1325
fabgl::VK_KP_0
@ VK_KP_0
Definition:
fabutils.h:1112
fabgl::VK_DIAERESIS
@ VK_DIAERESIS
Definition:
fabutils.h:1351
fabgl::VK_TILDE_O
@ VK_TILDE_O
Definition:
fabutils.h:1343
fabgl::VK_AMPERSAND
@ VK_AMPERSAND
Definition:
fabutils.h:1195
fabgl::VK_CARET_y
@ VK_CARET_y
Definition:
fabutils.h:1326
fabgl::VK_SCROLLLOCK
@ VK_SCROLLLOCK
Definition:
fabutils.h:1245
fabgl::VK_EQUALS
@ VK_EQUALS
Definition:
fabutils.h:1180
fabgl::VK_CARET_O
@ VK_CARET_O
Definition:
fabutils.h:1331
fabgl::VK_COLON
@ VK_COLON
Definition:
fabutils.h:1192
fabgl::VK_6
@ VK_6
Definition:
fabutils.h:1108
fabgl::VK_TAB
@ VK_TAB
Definition:
fabutils.h:1248
fabgl::VK_TILDE_n
@ VK_TILDE_n
Definition:
fabutils.h:1340
fabgl::VK_KP_DIVIDE
@ VK_KP_DIVIDE
Definition:
fabutils.h:1188
fabgl::VK_LEFTBRACE
@ VK_LEFTBRACE
Definition:
fabutils.h:1206
fabgl::VK_CEDILLA_C
@ VK_CEDILLA_C
Definition:
fabutils.h:1336
fabgl::VK_LESS
@ VK_LESS
Definition:
fabutils.h:1212
fabgl::VK_EXCLAIM
@ VK_EXCLAIM
Definition:
fabutils.h:1204
fabgl::VK_TILDE_N
@ VK_TILDE_N
Definition:
fabutils.h:1344
fabgl::VK_CARET_E
@ VK_CARET_E
Definition:
fabutils.h:1329
fabgl::VK_UMLAUT_u
@ VK_UMLAUT_u
Definition:
fabutils.h:1311
fabgl::VK_ACUTE_E
@ VK_ACUTE_E
Definition:
fabutils.h:1301
fabgl::VK_GRAVE_O
@ VK_GRAVE_O
Definition:
fabutils.h:1296
fabgl::VK_UMLAUT_y
@ VK_UMLAUT_y
Definition:
fabutils.h:1312
fabgl::VK_DELETE
@ VK_DELETE
Definition:
fabutils.h:1236
fabgl::VK_NEGATION
@ VK_NEGATION
Definition:
fabutils.h:1218
fabgl::VK_KP_ENTER
@ VK_KP_ENTER
Definition:
fabutils.h:1250
fabgl::VK_0
@ VK_0
Definition:
fabutils.h:1102
fabgl::VK_CARET_Y
@ VK_CARET_Y
Definition:
fabutils.h:1333
fabgl::VK_GRAVEACCENT
@ VK_GRAVEACCENT
Definition:
fabutils.h:1176
fabgl::VK_ACUTE_I
@ VK_ACUTE_I
Definition:
fabutils.h:1302
fabgl::VK_A
@ VK_A
Definition:
fabutils.h:1149
fabgl::VK_DOLLAR
@ VK_DOLLAR
Definition:
fabutils.h:1200
fabgl::VK_SECTION
@ VK_SECTION
Definition:
fabutils.h:1216
fabgl::VK_UMLAUT_o
@ VK_UMLAUT_o
Definition:
fabutils.h:1310
fabgl::VK_Z
@ VK_Z
Definition:
fabutils.h:1174
fabgl::VK_GRAVE_u
@ VK_GRAVE_u
Definition:
fabutils.h:1283
fabgl::VK_CARET_a
@ VK_CARET_a
Definition:
fabutils.h:1321
fabgl::VK_ACUTE_o
@ VK_ACUTE_o
Definition:
fabutils.h:1289
fabgl::VK_BACKSPACE
@ VK_BACKSPACE
Definition:
fabutils.h:1238
fabgl::VK_TILDE_o
@ VK_TILDE_o
Definition:
fabutils.h:1339
fabgl::VK_QUESTION
@ VK_QUESTION
Definition:
fabutils.h:1205
fabgl::VK_MINUS
@ VK_MINUS
Definition:
fabutils.h:1181
fabgl::VK_UMLAUT_E
@ VK_UMLAUT_E
Definition:
fabutils.h:1315
fabgl::VK_BACKSLASH
@ VK_BACKSLASH
Definition:
fabutils.h:1187
fabgl::VK_NONE
@ VK_NONE
Definition:
fabutils.h:1098
fabgl::VK_INTERPUNCT
@ VK_INTERPUNCT
Definition:
fabutils.h:1350
fabgl::VK_ACUTE_U
@ VK_ACUTE_U
Definition:
fabutils.h:1304
fabgl::VK_KP_MINUS
@ VK_KP_MINUS
Definition:
fabutils.h:1182
fabgl::VK_CARET
@ VK_CARET
Definition:
fabutils.h:1199
fabgl::VK_QUOTEDBL
@ VK_QUOTEDBL
Definition:
fabutils.h:1179
fabgl::VK_CARET_i
@ VK_CARET_i
Definition:
fabutils.h:1323
fabgl::VK_ACUTE_y
@ VK_ACUTE_y
Definition:
fabutils.h:1291
fabgl::VK_UMLAUT_Y
@ VK_UMLAUT_Y
Definition:
fabutils.h:1319
fabgl::VK_EURO
@ VK_EURO
Definition:
fabutils.h:1202
fabgl::VK_2
@ VK_2
Definition:
fabutils.h:1104
fabgl::VK_RIGHTBRACKET
@ VK_RIGHTBRACKET
Definition:
fabutils.h:1209
fabgl::VK_UMLAUT_i
@ VK_UMLAUT_i
Definition:
fabutils.h:1309
fabgl::VK_PLUS
@ VK_PLUS
Definition:
fabutils.h:1183
fabgl::VK_SQUARE
@ VK_SQUARE
Definition:
fabutils.h:1352
fabgl::VK_ACUTE_u
@ VK_ACUTE_u
Definition:
fabutils.h:1290
fabgl::VK_EXCLAIM_INV
@ VK_EXCLAIM_INV
Definition:
fabutils.h:1348
fabgl::VK_GRAVE_i
@ VK_GRAVE_i
Definition:
fabutils.h:1281
fabgl::VK_KP_PLUS
@ VK_KP_PLUS
Definition:
fabutils.h:1184
fabgl::VK_PERCENT
@ VK_PERCENT
Definition:
fabutils.h:1203
fabgl::VK_TILDE_A
@ VK_TILDE_A
Definition:
fabutils.h:1342
src
codepages.cpp
Generated on Sun May 22 2022 11:19:45 for FabGL by
1.9.3