]> git.jsancho.org Git - guile-irrlicht.git/blob - src/keycodes.cpp
event-key-input-key event-key-input-pressed
[guile-irrlicht.git] / src / keycodes.cpp
1 /* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
2
3    Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
4
5    This file is part of guile-irrlicht.
6
7    guile-irrlicht is free software; you can redistribute it and/or modify
8    it under the terms of the GNU Lesser General Public License as
9    published by the Free Software Foundation; either version 3 of the
10    License, or (at your option) any later version.
11
12    guile-irrlicht is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16
17    You should have received a copy of the GNU Lesser General Public
18    License along with guile-irrlicht. If not, see
19    <http://www.gnu.org/licenses/>.
20 */
21
22 #include <irrlicht/irrlicht.h>
23 #include <libguile.h>
24
25 extern "C" {
26
27   SCM
28   scm_from_key_code (irr::EKEY_CODE key_code)
29   {
30     switch (key_code)
31       {
32       case irr::KEY_LBUTTON:
33         return scm_from_utf8_symbol ("lbutton");
34         break;
35
36       case irr::KEY_RBUTTON:
37         return scm_from_utf8_symbol ("rbutton");
38         break;
39
40       case irr::KEY_CANCEL:
41         return scm_from_utf8_symbol ("cancel");
42         break;
43
44       case irr::KEY_MBUTTON:
45         return scm_from_utf8_symbol ("mbutton");
46         break;
47
48       case irr::KEY_XBUTTON1:
49         return scm_from_utf8_symbol ("xbutton1");
50         break;
51
52       case irr::KEY_XBUTTON2:
53         return scm_from_utf8_symbol ("xbutton2");
54         break;
55
56       case irr::KEY_BACK:
57         return scm_from_utf8_symbol ("back");
58         break;
59
60       case irr::KEY_TAB:
61         return scm_from_utf8_symbol ("tab");
62         break;
63
64       case irr::KEY_CLEAR:
65         return scm_from_utf8_symbol ("clear");
66         break;
67
68       case irr::KEY_RETURN:
69         return scm_from_utf8_symbol ("return");
70         break;
71
72       case irr::KEY_SHIFT:
73         return scm_from_utf8_symbol ("shift");
74         break;
75
76       case irr::KEY_CONTROL:
77         return scm_from_utf8_symbol ("control");
78         break;
79
80       case irr::KEY_MENU:
81         return scm_from_utf8_symbol ("menu");
82         break;
83
84       case irr::KEY_PAUSE:
85         return scm_from_utf8_symbol ("pause");
86         break;
87
88       case irr::KEY_CAPITAL:
89         return scm_from_utf8_symbol ("capital");
90         break;
91
92       case irr::KEY_KANA:
93         return scm_from_utf8_symbol ("kana");
94         break;
95
96       case irr::KEY_JUNJA:
97         return scm_from_utf8_symbol ("junja");
98         break;
99
100       case irr::KEY_FINAL:
101         return scm_from_utf8_symbol ("final");
102         break;
103
104       case irr::KEY_HANJA:
105         return scm_from_utf8_symbol ("hanja");
106         break;
107
108       case irr::KEY_ESCAPE:
109         return scm_from_utf8_symbol ("escape");
110         break;
111
112       case irr::KEY_CONVERT:
113         return scm_from_utf8_symbol ("convert");
114         break;
115
116       case irr::KEY_NONCONVERT:
117         return scm_from_utf8_symbol ("nonconvert");
118         break;
119
120       case irr::KEY_ACCEPT:
121         return scm_from_utf8_symbol ("accept");
122         break;
123
124       case irr::KEY_MODECHANGE:
125         return scm_from_utf8_symbol ("modechange");
126         break;
127
128       case irr::KEY_SPACE:
129         return scm_from_utf8_symbol ("space");
130         break;
131
132       case irr::KEY_PRIOR:
133         return scm_from_utf8_symbol ("prior");
134         break;
135
136       case irr::KEY_NEXT:
137         return scm_from_utf8_symbol ("next");
138         break;
139
140       case irr::KEY_END:
141         return scm_from_utf8_symbol ("end");
142         break;
143
144       case irr::KEY_HOME:
145         return scm_from_utf8_symbol ("home");
146         break;
147
148       case irr::KEY_LEFT:
149         return scm_from_utf8_symbol ("left");
150         break;
151
152       case irr::KEY_UP:
153         return scm_from_utf8_symbol ("up");
154         break;
155
156       case irr::KEY_RIGHT:
157         return scm_from_utf8_symbol ("right");
158         break;
159
160       case irr::KEY_DOWN:
161         return scm_from_utf8_symbol ("down");
162         break;
163
164       case irr::KEY_SELECT:
165         return scm_from_utf8_symbol ("select");
166         break;
167
168       case irr::KEY_PRINT:
169         return scm_from_utf8_symbol ("print");
170         break;
171
172       case irr::KEY_EXECUT:
173         return scm_from_utf8_symbol ("execut");
174         break;
175
176       case irr::KEY_SNAPSHOT:
177         return scm_from_utf8_symbol ("snapshot");
178         break;
179
180       case irr::KEY_INSERT:
181         return scm_from_utf8_symbol ("insert");
182         break;
183
184       case irr::KEY_DELETE:
185         return scm_from_utf8_symbol ("delete");
186         break;
187
188       case irr::KEY_HELP:
189         return scm_from_utf8_symbol ("help");
190         break;
191
192       case irr::KEY_KEY_0:
193         return scm_from_utf8_symbol ("key-0");
194         break;
195
196       case irr::KEY_KEY_1:
197         return scm_from_utf8_symbol ("key-1");
198         break;
199
200       case irr::KEY_KEY_2:
201         return scm_from_utf8_symbol ("key-2");
202         break;
203
204       case irr::KEY_KEY_3:
205         return scm_from_utf8_symbol ("key-3");
206         break;
207
208       case irr::KEY_KEY_4:
209         return scm_from_utf8_symbol ("key-4");
210         break;
211
212       case irr::KEY_KEY_5:
213         return scm_from_utf8_symbol ("key-5");
214         break;
215
216       case irr::KEY_KEY_6:
217         return scm_from_utf8_symbol ("key-6");
218         break;
219
220       case irr::KEY_KEY_7:
221         return scm_from_utf8_symbol ("key-7");
222         break;
223
224       case irr::KEY_KEY_8:
225         return scm_from_utf8_symbol ("key-8");
226         break;
227
228       case irr::KEY_KEY_9:
229         return scm_from_utf8_symbol ("key-9");
230         break;
231
232       case irr::KEY_KEY_A:
233         return scm_from_utf8_symbol ("key-a");
234         break;
235
236       case irr::KEY_KEY_B:
237         return scm_from_utf8_symbol ("key-b");
238         break;
239
240       case irr::KEY_KEY_C:
241         return scm_from_utf8_symbol ("key-c");
242         break;
243
244       case irr::KEY_KEY_D:
245         return scm_from_utf8_symbol ("key-d");
246         break;
247
248       case irr::KEY_KEY_E:
249         return scm_from_utf8_symbol ("key-e");
250         break;
251
252       case irr::KEY_KEY_F:
253         return scm_from_utf8_symbol ("key-f");
254         break;
255
256       case irr::KEY_KEY_G:
257         return scm_from_utf8_symbol ("key-g");
258         break;
259
260       case irr::KEY_KEY_H:
261         return scm_from_utf8_symbol ("key-h");
262         break;
263
264       case irr::KEY_KEY_I:
265         return scm_from_utf8_symbol ("key-i");
266         break;
267
268       case irr::KEY_KEY_J:
269         return scm_from_utf8_symbol ("key-j");
270         break;
271
272       case irr::KEY_KEY_K:
273         return scm_from_utf8_symbol ("key-k");
274         break;
275
276       case irr::KEY_KEY_L:
277         return scm_from_utf8_symbol ("key-l");
278         break;
279
280       case irr::KEY_KEY_M:
281         return scm_from_utf8_symbol ("key-m");
282         break;
283
284       case irr::KEY_KEY_N:
285         return scm_from_utf8_symbol ("key-n");
286         break;
287
288       case irr::KEY_KEY_O:
289         return scm_from_utf8_symbol ("key-o");
290         break;
291
292       case irr::KEY_KEY_P:
293         return scm_from_utf8_symbol ("key-p");
294         break;
295
296       case irr::KEY_KEY_Q:
297         return scm_from_utf8_symbol ("key-q");
298         break;
299
300       case irr::KEY_KEY_R:
301         return scm_from_utf8_symbol ("key-r");
302         break;
303
304       case irr::KEY_KEY_S:
305         return scm_from_utf8_symbol ("key-s");
306         break;
307
308       case irr::KEY_KEY_T:
309         return scm_from_utf8_symbol ("key-t");
310         break;
311
312       case irr::KEY_KEY_U:
313         return scm_from_utf8_symbol ("key-u");
314         break;
315
316       case irr::KEY_KEY_V:
317         return scm_from_utf8_symbol ("key-v");
318         break;
319
320       case irr::KEY_KEY_W:
321         return scm_from_utf8_symbol ("key-w");
322         break;
323
324       case irr::KEY_KEY_X:
325         return scm_from_utf8_symbol ("key-x");
326         break;
327
328       case irr::KEY_KEY_Y:
329         return scm_from_utf8_symbol ("key-y");
330         break;
331
332       case irr::KEY_KEY_Z:
333         return scm_from_utf8_symbol ("key-z");
334         break;
335
336       case irr::KEY_LWIN:
337         return scm_from_utf8_symbol ("lwin");
338         break;
339
340       case irr::KEY_RWIN:
341         return scm_from_utf8_symbol ("rwin");
342         break;
343
344       case irr::KEY_APPS:
345         return scm_from_utf8_symbol ("apps");
346         break;
347
348       case irr::KEY_SLEEP:
349         return scm_from_utf8_symbol ("sleep");
350         break;
351
352       case irr::KEY_NUMPAD0:
353         return scm_from_utf8_symbol ("numpad0");
354         break;
355
356       case irr::KEY_NUMPAD1:
357         return scm_from_utf8_symbol ("numpad1");
358         break;
359
360       case irr::KEY_NUMPAD2:
361         return scm_from_utf8_symbol ("numpad2");
362         break;
363
364       case irr::KEY_NUMPAD3:
365         return scm_from_utf8_symbol ("numpad3");
366         break;
367
368       case irr::KEY_NUMPAD4:
369         return scm_from_utf8_symbol ("numpad4");
370         break;
371
372       case irr::KEY_NUMPAD5:
373         return scm_from_utf8_symbol ("numpad5");
374         break;
375
376       case irr::KEY_NUMPAD6:
377         return scm_from_utf8_symbol ("numpad6");
378         break;
379
380       case irr::KEY_NUMPAD7:
381         return scm_from_utf8_symbol ("numpad7");
382         break;
383
384       case irr::KEY_NUMPAD8:
385         return scm_from_utf8_symbol ("numpad8");
386         break;
387
388       case irr::KEY_NUMPAD9:
389         return scm_from_utf8_symbol ("numpad9");
390         break;
391
392       case irr::KEY_MULTIPLY:
393         return scm_from_utf8_symbol ("multiply");
394         break;
395
396       case irr::KEY_ADD:
397         return scm_from_utf8_symbol ("add");
398         break;
399
400       case irr::KEY_SEPARATOR:
401         return scm_from_utf8_symbol ("separator");
402         break;
403
404       case irr::KEY_SUBTRACT:
405         return scm_from_utf8_symbol ("subtract");
406         break;
407
408       case irr::KEY_DECIMAL:
409         return scm_from_utf8_symbol ("decimal");
410         break;
411
412       case irr::KEY_DIVIDE:
413         return scm_from_utf8_symbol ("divide");
414         break;
415
416       case irr::KEY_F1:
417         return scm_from_utf8_symbol ("f1");
418         break;
419
420       case irr::KEY_F2:
421         return scm_from_utf8_symbol ("f2");
422         break;
423
424       case irr::KEY_F3:
425         return scm_from_utf8_symbol ("f3");
426         break;
427
428       case irr::KEY_F4:
429         return scm_from_utf8_symbol ("f4");
430         break;
431
432       case irr::KEY_F5:
433         return scm_from_utf8_symbol ("f5");
434         break;
435
436       case irr::KEY_F6:
437         return scm_from_utf8_symbol ("f6");
438         break;
439
440       case irr::KEY_F7:
441         return scm_from_utf8_symbol ("f7");
442         break;
443
444       case irr::KEY_F8:
445         return scm_from_utf8_symbol ("f8");
446         break;
447
448       case irr::KEY_F9:
449         return scm_from_utf8_symbol ("f9");
450         break;
451
452       case irr::KEY_F10:
453         return scm_from_utf8_symbol ("f10");
454         break;
455
456       case irr::KEY_F11:
457         return scm_from_utf8_symbol ("f11");
458         break;
459
460       case irr::KEY_F12:
461         return scm_from_utf8_symbol ("f12");
462         break;
463
464       case irr::KEY_F13:
465         return scm_from_utf8_symbol ("f13");
466         break;
467
468       case irr::KEY_F14:
469         return scm_from_utf8_symbol ("f14");
470         break;
471
472       case irr::KEY_F15:
473         return scm_from_utf8_symbol ("f15");
474         break;
475
476       case irr::KEY_F16:
477         return scm_from_utf8_symbol ("f16");
478         break;
479
480       case irr::KEY_F17:
481         return scm_from_utf8_symbol ("f17");
482         break;
483
484       case irr::KEY_F18:
485         return scm_from_utf8_symbol ("f18");
486         break;
487
488       case irr::KEY_F19:
489         return scm_from_utf8_symbol ("f19");
490         break;
491
492       case irr::KEY_F20:
493         return scm_from_utf8_symbol ("f20");
494         break;
495
496       case irr::KEY_F21:
497         return scm_from_utf8_symbol ("f21");
498         break;
499
500       case irr::KEY_F22:
501         return scm_from_utf8_symbol ("f22");
502         break;
503
504       case irr::KEY_F23:
505         return scm_from_utf8_symbol ("f23");
506         break;
507
508       case irr::KEY_F24:
509         return scm_from_utf8_symbol ("f24");
510         break;
511
512       case irr::KEY_NUMLOCK:
513         return scm_from_utf8_symbol ("numlock");
514         break;
515
516       case irr::KEY_SCROLL:
517         return scm_from_utf8_symbol ("scroll");
518         break;
519
520       case irr::KEY_LSHIFT:
521         return scm_from_utf8_symbol ("lshift");
522         break;
523
524       case irr::KEY_RSHIFT:
525         return scm_from_utf8_symbol ("rshift");
526         break;
527
528       case irr::KEY_LCONTROL:
529         return scm_from_utf8_symbol ("lcontrol");
530         break;
531
532       case irr::KEY_RCONTROL:
533         return scm_from_utf8_symbol ("rcontrol");
534         break;
535
536       case irr::KEY_LMENU:
537         return scm_from_utf8_symbol ("lmenu");
538         break;
539
540       case irr::KEY_RMENU:
541         return scm_from_utf8_symbol ("rmenu");
542         break;
543
544       case irr::KEY_OEM_1:
545         return scm_from_utf8_symbol ("oem-1");
546         break;
547
548       case irr::KEY_PLUS:
549         return scm_from_utf8_symbol ("plus");
550         break;
551
552       case irr::KEY_COMMA:
553         return scm_from_utf8_symbol ("comma");
554         break;
555
556       case irr::KEY_MINUS:
557         return scm_from_utf8_symbol ("minus");
558         break;
559
560       case irr::KEY_PERIOD:
561         return scm_from_utf8_symbol ("period");
562         break;
563
564       case irr::KEY_OEM_2:
565         return scm_from_utf8_symbol ("oem-2");
566         break;
567
568       case irr::KEY_OEM_3:
569         return scm_from_utf8_symbol ("oem-3");
570         break;
571
572       case irr::KEY_OEM_4:
573         return scm_from_utf8_symbol ("oem-4");
574         break;
575
576       case irr::KEY_OEM_5:
577         return scm_from_utf8_symbol ("oem-5");
578         break;
579
580       case irr::KEY_OEM_6:
581         return scm_from_utf8_symbol ("oem-6");
582         break;
583
584       case irr::KEY_OEM_7:
585         return scm_from_utf8_symbol ("oem-7");
586         break;
587
588       case irr::KEY_OEM_8:
589         return scm_from_utf8_symbol ("oem-8");
590         break;
591
592       case irr::KEY_OEM_AX:
593         return scm_from_utf8_symbol ("oem-ax");
594         break;
595
596       case irr::KEY_OEM_102:
597         return scm_from_utf8_symbol ("oem-102");
598         break;
599
600       case irr::KEY_ATTN:
601         return scm_from_utf8_symbol ("attn");
602         break;
603
604       case irr::KEY_CRSEL:
605         return scm_from_utf8_symbol ("crsel");
606         break;
607
608       case irr::KEY_EXSEL:
609         return scm_from_utf8_symbol ("exsel");
610         break;
611
612       case irr::KEY_EREOF:
613         return scm_from_utf8_symbol ("ereof");
614         break;
615
616       case irr::KEY_PLAY:
617         return scm_from_utf8_symbol ("play");
618         break;
619
620       case irr::KEY_ZOOM:
621         return scm_from_utf8_symbol ("zoom");
622         break;
623
624       case irr::KEY_PA1:
625         return scm_from_utf8_symbol ("pa1");
626         break;
627
628       case irr::KEY_OEM_CLEAR:
629         return scm_from_utf8_symbol ("oem-clear");
630         break;
631
632       default:
633         SCM code = scm_from_uint (key_code);
634         scm_error (scm_arg_type_key, NULL, "Wrong key code: ~S",
635                    scm_list_1 (code), scm_list_1 (code));
636       }
637   }
638
639 }