blob: b80c47e33d8e9fa552a329db144336c4d5ad336c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
|
/** \file
* \brief Keyboard Keys definitions.
*
* See Copyright Notice in "iup.h"
*/
#ifndef __IUPKEY_H
#define __IUPKEY_H
/* from 32 to 126, all character sets are equal,
the key code i the same as the character code. */
#define K_SP ' ' /* 32 (0x20) */
#define K_exclam '!' /* 33 */
#define K_quotedbl '\"' /* 34 */
#define K_numbersign '#' /* 35 */
#define K_dollar '$' /* 36 */
#define K_percent '%' /* 37 */
#define K_ampersand '&' /* 38 */
#define K_apostrophe '\'' /* 39 */
#define K_parentleft '(' /* 40 */
#define K_parentright ')' /* 41 */
#define K_asterisk '*' /* 42 */
#define K_plus '+' /* 43 */
#define K_comma ',' /* 44 */
#define K_minus '-' /* 45 */
#define K_period '.' /* 46 */
#define K_slash '/' /* 47 */
#define K_0 '0' /* 48 (0x30) */
#define K_1 '1' /* 49 */
#define K_2 '2' /* 50 */
#define K_3 '3' /* 51 */
#define K_4 '4' /* 52 */
#define K_5 '5' /* 53 */
#define K_6 '6' /* 54 */
#define K_7 '7' /* 55 */
#define K_8 '8' /* 56 */
#define K_9 '9' /* 57 */
#define K_colon ':' /* 58 */
#define K_semicolon ';' /* 59 */
#define K_less '<' /* 60 */
#define K_equal '=' /* 61 */
#define K_greater '>' /* 62 */
#define K_question '?' /* 63 */
#define K_at '@' /* 64 */
#define K_A 'A' /* 65 (0x41) */
#define K_B 'B' /* 66 */
#define K_C 'C' /* 67 */
#define K_D 'D' /* 68 */
#define K_E 'E' /* 69 */
#define K_F 'F' /* 70 */
#define K_G 'G' /* 71 */
#define K_H 'H' /* 72 */
#define K_I 'I' /* 73 */
#define K_J 'J' /* 74 */
#define K_K 'K' /* 75 */
#define K_L 'L' /* 76 */
#define K_M 'M' /* 77 */
#define K_N 'N' /* 78 */
#define K_O 'O' /* 79 */
#define K_P 'P' /* 80 */
#define K_Q 'Q' /* 81 */
#define K_R 'R' /* 82 */
#define K_S 'S' /* 83 */
#define K_T 'T' /* 84 */
#define K_U 'U' /* 85 */
#define K_V 'V' /* 86 */
#define K_W 'W' /* 87 */
#define K_X 'X' /* 88 */
#define K_Y 'Y' /* 89 */
#define K_Z 'Z' /* 90 */
#define K_bracketleft '[' /* 91 */
#define K_backslash '\\' /* 92 */
#define K_bracketright ']' /* 93 */
#define K_circum '^' /* 94 */
#define K_underscore '_' /* 95 */
#define K_grave '`' /* 96 */
#define K_a 'a' /* 97 (0x61) */
#define K_b 'b' /* 98 */
#define K_c 'c' /* 99 */
#define K_d 'd' /* 100 */
#define K_e 'e' /* 101 */
#define K_f 'f' /* 102 */
#define K_g 'g' /* 103 */
#define K_h 'h' /* 104 */
#define K_i 'i' /* 105 */
#define K_j 'j' /* 106 */
#define K_k 'k' /* 107 */
#define K_l 'l' /* 108 */
#define K_m 'm' /* 109 */
#define K_n 'n' /* 110 */
#define K_o 'o' /* 111 */
#define K_p 'p' /* 112 */
#define K_q 'q' /* 113 */
#define K_r 'r' /* 114 */
#define K_s 's' /* 115 */
#define K_t 't' /* 116 */
#define K_u 'u' /* 117 */
#define K_v 'v' /* 118 */
#define K_w 'w' /* 119 */
#define K_x 'x' /* 120 */
#define K_y 'y' /* 121 */
#define K_z 'z' /* 122 */
#define K_braceleft '{' /* 123 */
#define K_bar '|' /* 124 */
#define K_braceright '}' /* 125 */
#define K_tilde '~' /* 126 */
#define iup_isprint(_c) ((_c) > 31 && (_c) < 127)
/* also define the escape sequences that have keys associated */
#define K_BS '\b' /* 8 */
#define K_TAB '\t' /* 9 */
#define K_LF '\n' /* 10 (0x0A) not a real key, is a combination of CR with a modifier, just to document */
#define K_CR '\r' /* 13 (0x0D) */
/* backward compatible definitions */
#define K_quoteleft K_grave
#define K_quoteright K_apostrophe
#define isxkey iup_isXkey
/* IUP Extended Key Codes, range start at 128 */
/* Modifiers use 256 interval */
/* These key code definitions are specific to IUP */
#define iup_isXkey(_c) ((_c) > 128)
#define iup_isShiftXkey(_c) (((_c) > 256) && ((_c) < 512))
#define iup_isCtrlXkey(_c) (((_c) > 512) && ((_c) < 768))
#define iup_isAltXkey(_c) (((_c) > 768) && ((_c) < 1024))
#define iup_isSysXkey(_c) (((_c) > 1024) && ((_c) < 1280))
#define IUPxCODE(_c) ((_c) + 128) /* Normal (must be above 128) */
#define IUPsxCODE(_c) ((_c) + 256) /* Shift (must have range to include the standard keys and the normal extended keys, so must be above 256 */
#define IUPcxCODE(_c) ((_c) + 512) /* Ctrl */
#define IUPmxCODE(_c) ((_c) + 768) /* Alt */
#define IUPyxCODE(_c) ((_c) + 1024) /* Sys (Win or Apple) */
#define IUP_NUMMAXCODES 1280 /* 5*256=1280 Normal+Shift+Ctrl+Alt+Sys */
#define K_HOME IUPxCODE(1)
#define K_UP IUPxCODE(2)
#define K_PGUP IUPxCODE(3)
#define K_LEFT IUPxCODE(4)
#define K_MIDDLE IUPxCODE(5)
#define K_RIGHT IUPxCODE(6)
#define K_END IUPxCODE(7)
#define K_DOWN IUPxCODE(8)
#define K_PGDN IUPxCODE(9)
#define K_INS IUPxCODE(10)
#define K_DEL IUPxCODE(11)
#define K_PAUSE IUPxCODE(12)
#define K_ESC IUPxCODE(13)
#define K_ccedilla IUPxCODE(14)
#define K_F1 IUPxCODE(15)
#define K_F2 IUPxCODE(16)
#define K_F3 IUPxCODE(17)
#define K_F4 IUPxCODE(18)
#define K_F5 IUPxCODE(19)
#define K_F6 IUPxCODE(20)
#define K_F7 IUPxCODE(21)
#define K_F8 IUPxCODE(22)
#define K_F9 IUPxCODE(23)
#define K_F10 IUPxCODE(24)
#define K_F11 IUPxCODE(25)
#define K_F12 IUPxCODE(26)
#define K_Print IUPxCODE(27)
#define K_Menu IUPxCODE(28)
#define K_acute IUPxCODE(29) /* no Shift/Ctrl/Alt */
#define K_sHOME IUPsxCODE(K_HOME )
#define K_sUP IUPsxCODE(K_UP )
#define K_sPGUP IUPsxCODE(K_PGUP )
#define K_sLEFT IUPsxCODE(K_LEFT )
#define K_sMIDDLE IUPsxCODE(K_MIDDLE )
#define K_sRIGHT IUPsxCODE(K_RIGHT )
#define K_sEND IUPsxCODE(K_END )
#define K_sDOWN IUPsxCODE(K_DOWN )
#define K_sPGDN IUPsxCODE(K_PGDN )
#define K_sINS IUPsxCODE(K_INS )
#define K_sDEL IUPsxCODE(K_DEL )
#define K_sSP IUPsxCODE(K_SP )
#define K_sTAB IUPsxCODE(K_TAB )
#define K_sCR IUPsxCODE(K_CR )
#define K_sBS IUPsxCODE(K_BS )
#define K_sPAUSE IUPsxCODE(K_PAUSE )
#define K_sESC IUPsxCODE(K_ESC )
#define K_Ccedilla IUPsxCODE(K_ccedilla)
#define K_sF1 IUPsxCODE(K_F1 )
#define K_sF2 IUPsxCODE(K_F2 )
#define K_sF3 IUPsxCODE(K_F3 )
#define K_sF4 IUPsxCODE(K_F4 )
#define K_sF5 IUPsxCODE(K_F5 )
#define K_sF6 IUPsxCODE(K_F6 )
#define K_sF7 IUPsxCODE(K_F7 )
#define K_sF8 IUPsxCODE(K_F8 )
#define K_sF9 IUPsxCODE(K_F9 )
#define K_sF10 IUPsxCODE(K_F10 )
#define K_sF11 IUPsxCODE(K_F11 )
#define K_sF12 IUPsxCODE(K_F12 )
#define K_sPrint IUPsxCODE(K_Print )
#define K_sMenu IUPsxCODE(K_Menu )
#define K_cHOME IUPcxCODE(K_HOME )
#define K_cUP IUPcxCODE(K_UP )
#define K_cPGUP IUPcxCODE(K_PGUP )
#define K_cLEFT IUPcxCODE(K_LEFT )
#define K_cMIDDLE IUPcxCODE(K_MIDDLE )
#define K_cRIGHT IUPcxCODE(K_RIGHT )
#define K_cEND IUPcxCODE(K_END )
#define K_cDOWN IUPcxCODE(K_DOWN )
#define K_cPGDN IUPcxCODE(K_PGDN )
#define K_cINS IUPcxCODE(K_INS )
#define K_cDEL IUPcxCODE(K_DEL )
#define K_cSP IUPcxCODE(K_SP )
#define K_cTAB IUPcxCODE(K_TAB )
#define K_cCR IUPcxCODE(K_CR )
#define K_cBS IUPcxCODE(K_BS )
#define K_cPAUSE IUPcxCODE(K_PAUSE )
#define K_cESC IUPcxCODE(K_ESC )
#define K_cCcedilla IUPcxCODE(K_ccedilla)
#define K_cF1 IUPcxCODE(K_F1 )
#define K_cF2 IUPcxCODE(K_F2 )
#define K_cF3 IUPcxCODE(K_F3 )
#define K_cF4 IUPcxCODE(K_F4 )
#define K_cF5 IUPcxCODE(K_F5 )
#define K_cF6 IUPcxCODE(K_F6 )
#define K_cF7 IUPcxCODE(K_F7 )
#define K_cF8 IUPcxCODE(K_F8 )
#define K_cF9 IUPcxCODE(K_F9 )
#define K_cF10 IUPcxCODE(K_F10 )
#define K_cF11 IUPcxCODE(K_F11 )
#define K_cF12 IUPcxCODE(K_F12 )
#define K_cPrint IUPcxCODE(K_Print )
#define K_cMenu IUPcxCODE(K_Menu )
#define K_mHOME IUPmxCODE(K_HOME )
#define K_mUP IUPmxCODE(K_UP )
#define K_mPGUP IUPmxCODE(K_PGUP )
#define K_mLEFT IUPmxCODE(K_LEFT )
#define K_mMIDDLE IUPmxCODE(K_MIDDLE )
#define K_mRIGHT IUPmxCODE(K_RIGHT )
#define K_mEND IUPmxCODE(K_END )
#define K_mDOWN IUPmxCODE(K_DOWN )
#define K_mPGDN IUPmxCODE(K_PGDN )
#define K_mINS IUPmxCODE(K_INS )
#define K_mDEL IUPmxCODE(K_DEL )
#define K_mSP IUPmxCODE(K_SP )
#define K_mTAB IUPmxCODE(K_TAB )
#define K_mCR IUPmxCODE(K_CR )
#define K_mBS IUPmxCODE(K_BS )
#define K_mPAUSE IUPmxCODE(K_PAUSE )
#define K_mESC IUPmxCODE(K_ESC )
#define K_mCcedilla IUPmxCODE(K_ccedilla)
#define K_mF1 IUPmxCODE(K_F1 )
#define K_mF2 IUPmxCODE(K_F2 )
#define K_mF3 IUPmxCODE(K_F3 )
#define K_mF4 IUPmxCODE(K_F4 )
#define K_mF5 IUPmxCODE(K_F5 )
#define K_mF6 IUPmxCODE(K_F6 )
#define K_mF7 IUPmxCODE(K_F7 )
#define K_mF8 IUPmxCODE(K_F8 )
#define K_mF9 IUPmxCODE(K_F9 )
#define K_mF10 IUPmxCODE(K_F10 )
#define K_mF11 IUPmxCODE(K_F11 )
#define K_mF12 IUPmxCODE(K_F12 )
#define K_mPrint IUPmxCODE(K_Print )
#define K_mMenu IUPmxCODE(K_Menu )
#define K_yHOME IUPyxCODE(K_HOME )
#define K_yUP IUPyxCODE(K_UP )
#define K_yPGUP IUPyxCODE(K_PGUP )
#define K_yLEFT IUPyxCODE(K_LEFT )
#define K_yMIDDLE IUPyxCODE(K_MIDDLE )
#define K_yRIGHT IUPyxCODE(K_RIGHT )
#define K_yEND IUPyxCODE(K_END )
#define K_yDOWN IUPyxCODE(K_DOWN )
#define K_yPGDN IUPyxCODE(K_PGDN )
#define K_yINS IUPyxCODE(K_INS )
#define K_yDEL IUPyxCODE(K_DEL )
#define K_ySP IUPyxCODE(K_SP )
#define K_yTAB IUPyxCODE(K_TAB )
#define K_yCR IUPyxCODE(K_CR )
#define K_yBS IUPyxCODE(K_BS )
#define K_yPAUSE IUPyxCODE(K_PAUSE )
#define K_yESC IUPyxCODE(K_ESC )
#define K_yCcedilla IUPyxCODE(K_ccedilla)
#define K_yF1 IUPyxCODE(K_F1 )
#define K_yF2 IUPyxCODE(K_F2 )
#define K_yF3 IUPyxCODE(K_F3 )
#define K_yF4 IUPyxCODE(K_F4 )
#define K_yF5 IUPyxCODE(K_F5 )
#define K_yF6 IUPyxCODE(K_F6 )
#define K_yF7 IUPyxCODE(K_F7 )
#define K_yF8 IUPyxCODE(K_F8 )
#define K_yF9 IUPyxCODE(K_F9 )
#define K_yF10 IUPyxCODE(K_F10 )
#define K_yF11 IUPyxCODE(K_F11 )
#define K_yF12 IUPyxCODE(K_F12 )
#define K_yPrint IUPyxCODE(K_Print )
#define K_yMenu IUPyxCODE(K_Menu )
#define K_sPlus IUPsxCODE(K_plus )
#define K_sComma IUPsxCODE(K_comma )
#define K_sMinus IUPsxCODE(K_minus )
#define K_sPeriod IUPsxCODE(K_period )
#define K_sSlash IUPsxCODE(K_slash )
#define K_sAsterisk IUPsxCODE(K_asterisk)
#define K_cA IUPcxCODE(K_A)
#define K_cB IUPcxCODE(K_B)
#define K_cC IUPcxCODE(K_C)
#define K_cD IUPcxCODE(K_D)
#define K_cE IUPcxCODE(K_E)
#define K_cF IUPcxCODE(K_F)
#define K_cG IUPcxCODE(K_G)
#define K_cH IUPcxCODE(K_H)
#define K_cI IUPcxCODE(K_I)
#define K_cJ IUPcxCODE(K_J)
#define K_cK IUPcxCODE(K_K)
#define K_cL IUPcxCODE(K_L)
#define K_cM IUPcxCODE(K_M)
#define K_cN IUPcxCODE(K_N)
#define K_cO IUPcxCODE(K_O)
#define K_cP IUPcxCODE(K_P)
#define K_cQ IUPcxCODE(K_Q)
#define K_cR IUPcxCODE(K_R)
#define K_cS IUPcxCODE(K_S)
#define K_cT IUPcxCODE(K_T)
#define K_cU IUPcxCODE(K_U)
#define K_cV IUPcxCODE(K_V)
#define K_cW IUPcxCODE(K_W)
#define K_cX IUPcxCODE(K_X)
#define K_cY IUPcxCODE(K_Y)
#define K_cZ IUPcxCODE(K_Z)
#define K_c1 IUPcxCODE(K_1)
#define K_c2 IUPcxCODE(K_2)
#define K_c3 IUPcxCODE(K_3)
#define K_c4 IUPcxCODE(K_4)
#define K_c5 IUPcxCODE(K_5)
#define K_c6 IUPcxCODE(K_6)
#define K_c7 IUPcxCODE(K_7)
#define K_c8 IUPcxCODE(K_8)
#define K_c9 IUPcxCODE(K_9)
#define K_c0 IUPcxCODE(K_0)
#define K_cPlus IUPcxCODE(K_plus )
#define K_cComma IUPcxCODE(K_comma )
#define K_cMinus IUPcxCODE(K_minus )
#define K_cPeriod IUPcxCODE(K_period )
#define K_cSlash IUPcxCODE(K_slash )
#define K_cSemicolon IUPcxCODE(K_semicolon )
#define K_cEqual IUPcxCODE(K_equal )
#define K_cBracketleft IUPcxCODE(K_bracketleft )
#define K_cBracketright IUPcxCODE(K_bracketright)
#define K_cBackslash IUPcxCODE(K_backslash )
#define K_cAsterisk IUPcxCODE(K_asterisk )
#define K_mA IUPmxCODE(K_A)
#define K_mB IUPmxCODE(K_B)
#define K_mC IUPmxCODE(K_C)
#define K_mD IUPmxCODE(K_D)
#define K_mE IUPmxCODE(K_E)
#define K_mF IUPmxCODE(K_F)
#define K_mG IUPmxCODE(K_G)
#define K_mH IUPmxCODE(K_H)
#define K_mI IUPmxCODE(K_I)
#define K_mJ IUPmxCODE(K_J)
#define K_mK IUPmxCODE(K_K)
#define K_mL IUPmxCODE(K_L)
#define K_mM IUPmxCODE(K_M)
#define K_mN IUPmxCODE(K_N)
#define K_mO IUPmxCODE(K_O)
#define K_mP IUPmxCODE(K_P)
#define K_mQ IUPmxCODE(K_Q)
#define K_mR IUPmxCODE(K_R)
#define K_mS IUPmxCODE(K_S)
#define K_mT IUPmxCODE(K_T)
#define K_mU IUPmxCODE(K_U)
#define K_mV IUPmxCODE(K_V)
#define K_mW IUPmxCODE(K_W)
#define K_mX IUPmxCODE(K_X)
#define K_mY IUPmxCODE(K_Y)
#define K_mZ IUPmxCODE(K_Z)
#define K_m1 IUPmxCODE(K_1)
#define K_m2 IUPmxCODE(K_2)
#define K_m3 IUPmxCODE(K_3)
#define K_m4 IUPmxCODE(K_4)
#define K_m5 IUPmxCODE(K_5)
#define K_m6 IUPmxCODE(K_6)
#define K_m7 IUPmxCODE(K_7)
#define K_m8 IUPmxCODE(K_8)
#define K_m9 IUPmxCODE(K_9)
#define K_m0 IUPmxCODE(K_0)
#define K_mPlus IUPmxCODE(K_plus )
#define K_mComma IUPmxCODE(K_comma )
#define K_mMinus IUPmxCODE(K_minus )
#define K_mPeriod IUPmxCODE(K_period )
#define K_mSlash IUPmxCODE(K_slash )
#define K_mSemicolon IUPmxCODE(K_semicolon )
#define K_mEqual IUPmxCODE(K_equal )
#define K_mBracketleft IUPmxCODE(K_bracketleft )
#define K_mBracketright IUPmxCODE(K_bracketright)
#define K_mBackslash IUPmxCODE(K_backslash )
#define K_mAsterisk IUPmxCODE(K_asterisk )
#define K_yA IUPyxCODE(K_A)
#define K_yB IUPyxCODE(K_B)
#define K_yC IUPyxCODE(K_C)
#define K_yD IUPyxCODE(K_D)
#define K_yE IUPyxCODE(K_E)
#define K_yF IUPyxCODE(K_F)
#define K_yG IUPyxCODE(K_G)
#define K_yH IUPyxCODE(K_H)
#define K_yI IUPyxCODE(K_I)
#define K_yJ IUPyxCODE(K_J)
#define K_yK IUPyxCODE(K_K)
#define K_yL IUPyxCODE(K_L)
#define K_yM IUPyxCODE(K_M)
#define K_yN IUPyxCODE(K_N)
#define K_yO IUPyxCODE(K_O)
#define K_yP IUPyxCODE(K_P)
#define K_yQ IUPyxCODE(K_Q)
#define K_yR IUPyxCODE(K_R)
#define K_yS IUPyxCODE(K_S)
#define K_yT IUPyxCODE(K_T)
#define K_yU IUPyxCODE(K_U)
#define K_yV IUPyxCODE(K_V)
#define K_yW IUPyxCODE(K_W)
#define K_yX IUPyxCODE(K_X)
#define K_yY IUPyxCODE(K_Y)
#define K_yZ IUPyxCODE(K_Z)
#define K_y1 IUPyxCODE(K_1)
#define K_y2 IUPyxCODE(K_2)
#define K_y3 IUPyxCODE(K_3)
#define K_y4 IUPyxCODE(K_4)
#define K_y5 IUPyxCODE(K_5)
#define K_y6 IUPyxCODE(K_6)
#define K_y7 IUPyxCODE(K_7)
#define K_y8 IUPyxCODE(K_8)
#define K_y9 IUPyxCODE(K_9)
#define K_y0 IUPyxCODE(K_0)
#define K_yPlus IUPyxCODE(K_plus )
#define K_yComma IUPyxCODE(K_comma )
#define K_yMinus IUPyxCODE(K_minus )
#define K_yPeriod IUPyxCODE(K_period )
#define K_ySlash IUPyxCODE(K_slash )
#define K_ySemicolon IUPyxCODE(K_semicolon )
#define K_yEqual IUPyxCODE(K_equal )
#define K_yBracketleft IUPyxCODE(K_bracketleft )
#define K_yBracketright IUPyxCODE(K_bracketright)
#define K_yBackslash IUPyxCODE(K_backslash )
#define K_yAsterisk IUPyxCODE(K_asterisk )
#endif
|