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