+++ /dev/null
-/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
-
- Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
-
- This file is part of guile-irrlicht.
-
- guile-irrlicht is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 3 of the
- License, or (at your option) any later version.
-
- guile-irrlicht is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with guile-irrlicht. If not, see
- <http://www.gnu.org/licenses/>.
-*/
-
-#include <irrlicht/irrlicht.h>
-#include <libguile.h>
-
-using namespace irr;
-
-SCM
-scm_from_key_code (EKEY_CODE key_code)
-{
- switch (key_code)
- {
- case KEY_LBUTTON:
- return scm_from_utf8_symbol ("lbutton");
- break;
-
- case KEY_RBUTTON:
- return scm_from_utf8_symbol ("rbutton");
- break;
-
- case KEY_CANCEL:
- return scm_from_utf8_symbol ("cancel");
- break;
-
- case KEY_MBUTTON:
- return scm_from_utf8_symbol ("mbutton");
- break;
-
- case KEY_XBUTTON1:
- return scm_from_utf8_symbol ("xbutton1");
- break;
-
- case KEY_XBUTTON2:
- return scm_from_utf8_symbol ("xbutton2");
- break;
-
- case KEY_BACK:
- return scm_from_utf8_symbol ("back");
- break;
-
- case KEY_TAB:
- return scm_from_utf8_symbol ("tab");
- break;
-
- case KEY_CLEAR:
- return scm_from_utf8_symbol ("clear");
- break;
-
- case KEY_RETURN:
- return scm_from_utf8_symbol ("return");
- break;
-
- case KEY_SHIFT:
- return scm_from_utf8_symbol ("shift");
- break;
-
- case KEY_CONTROL:
- return scm_from_utf8_symbol ("control");
- break;
-
- case KEY_MENU:
- return scm_from_utf8_symbol ("menu");
- break;
-
- case KEY_PAUSE:
- return scm_from_utf8_symbol ("pause");
- break;
-
- case KEY_CAPITAL:
- return scm_from_utf8_symbol ("capital");
- break;
-
- case KEY_KANA:
- return scm_from_utf8_symbol ("kana");
- break;
-
- case KEY_JUNJA:
- return scm_from_utf8_symbol ("junja");
- break;
-
- case KEY_FINAL:
- return scm_from_utf8_symbol ("final");
- break;
-
- case KEY_HANJA:
- return scm_from_utf8_symbol ("hanja");
- break;
-
- case KEY_ESCAPE:
- return scm_from_utf8_symbol ("escape");
- break;
-
- case KEY_CONVERT:
- return scm_from_utf8_symbol ("convert");
- break;
-
- case KEY_NONCONVERT:
- return scm_from_utf8_symbol ("nonconvert");
- break;
-
- case KEY_ACCEPT:
- return scm_from_utf8_symbol ("accept");
- break;
-
- case KEY_MODECHANGE:
- return scm_from_utf8_symbol ("modechange");
- break;
-
- case KEY_SPACE:
- return scm_from_utf8_symbol ("space");
- break;
-
- case KEY_PRIOR:
- return scm_from_utf8_symbol ("prior");
- break;
-
- case KEY_NEXT:
- return scm_from_utf8_symbol ("next");
- break;
-
- case KEY_END:
- return scm_from_utf8_symbol ("end");
- break;
-
- case KEY_HOME:
- return scm_from_utf8_symbol ("home");
- break;
-
- case KEY_LEFT:
- return scm_from_utf8_symbol ("left");
- break;
-
- case KEY_UP:
- return scm_from_utf8_symbol ("up");
- break;
-
- case KEY_RIGHT:
- return scm_from_utf8_symbol ("right");
- break;
-
- case KEY_DOWN:
- return scm_from_utf8_symbol ("down");
- break;
-
- case KEY_SELECT:
- return scm_from_utf8_symbol ("select");
- break;
-
- case KEY_PRINT:
- return scm_from_utf8_symbol ("print");
- break;
-
- case KEY_EXECUT:
- return scm_from_utf8_symbol ("execut");
- break;
-
- case KEY_SNAPSHOT:
- return scm_from_utf8_symbol ("snapshot");
- break;
-
- case KEY_INSERT:
- return scm_from_utf8_symbol ("insert");
- break;
-
- case KEY_DELETE:
- return scm_from_utf8_symbol ("delete");
- break;
-
- case KEY_HELP:
- return scm_from_utf8_symbol ("help");
- break;
-
- case KEY_KEY_0:
- return scm_from_utf8_symbol ("key-0");
- break;
-
- case KEY_KEY_1:
- return scm_from_utf8_symbol ("key-1");
- break;
-
- case KEY_KEY_2:
- return scm_from_utf8_symbol ("key-2");
- break;
-
- case KEY_KEY_3:
- return scm_from_utf8_symbol ("key-3");
- break;
-
- case KEY_KEY_4:
- return scm_from_utf8_symbol ("key-4");
- break;
-
- case KEY_KEY_5:
- return scm_from_utf8_symbol ("key-5");
- break;
-
- case KEY_KEY_6:
- return scm_from_utf8_symbol ("key-6");
- break;
-
- case KEY_KEY_7:
- return scm_from_utf8_symbol ("key-7");
- break;
-
- case KEY_KEY_8:
- return scm_from_utf8_symbol ("key-8");
- break;
-
- case KEY_KEY_9:
- return scm_from_utf8_symbol ("key-9");
- break;
-
- case KEY_KEY_A:
- return scm_from_utf8_symbol ("key-a");
- break;
-
- case KEY_KEY_B:
- return scm_from_utf8_symbol ("key-b");
- break;
-
- case KEY_KEY_C:
- return scm_from_utf8_symbol ("key-c");
- break;
-
- case KEY_KEY_D:
- return scm_from_utf8_symbol ("key-d");
- break;
-
- case KEY_KEY_E:
- return scm_from_utf8_symbol ("key-e");
- break;
-
- case KEY_KEY_F:
- return scm_from_utf8_symbol ("key-f");
- break;
-
- case KEY_KEY_G:
- return scm_from_utf8_symbol ("key-g");
- break;
-
- case KEY_KEY_H:
- return scm_from_utf8_symbol ("key-h");
- break;
-
- case KEY_KEY_I:
- return scm_from_utf8_symbol ("key-i");
- break;
-
- case KEY_KEY_J:
- return scm_from_utf8_symbol ("key-j");
- break;
-
- case KEY_KEY_K:
- return scm_from_utf8_symbol ("key-k");
- break;
-
- case KEY_KEY_L:
- return scm_from_utf8_symbol ("key-l");
- break;
-
- case KEY_KEY_M:
- return scm_from_utf8_symbol ("key-m");
- break;
-
- case KEY_KEY_N:
- return scm_from_utf8_symbol ("key-n");
- break;
-
- case KEY_KEY_O:
- return scm_from_utf8_symbol ("key-o");
- break;
-
- case KEY_KEY_P:
- return scm_from_utf8_symbol ("key-p");
- break;
-
- case KEY_KEY_Q:
- return scm_from_utf8_symbol ("key-q");
- break;
-
- case KEY_KEY_R:
- return scm_from_utf8_symbol ("key-r");
- break;
-
- case KEY_KEY_S:
- return scm_from_utf8_symbol ("key-s");
- break;
-
- case KEY_KEY_T:
- return scm_from_utf8_symbol ("key-t");
- break;
-
- case KEY_KEY_U:
- return scm_from_utf8_symbol ("key-u");
- break;
-
- case KEY_KEY_V:
- return scm_from_utf8_symbol ("key-v");
- break;
-
- case KEY_KEY_W:
- return scm_from_utf8_symbol ("key-w");
- break;
-
- case KEY_KEY_X:
- return scm_from_utf8_symbol ("key-x");
- break;
-
- case KEY_KEY_Y:
- return scm_from_utf8_symbol ("key-y");
- break;
-
- case KEY_KEY_Z:
- return scm_from_utf8_symbol ("key-z");
- break;
-
- case KEY_LWIN:
- return scm_from_utf8_symbol ("lwin");
- break;
-
- case KEY_RWIN:
- return scm_from_utf8_symbol ("rwin");
- break;
-
- case KEY_APPS:
- return scm_from_utf8_symbol ("apps");
- break;
-
- case KEY_SLEEP:
- return scm_from_utf8_symbol ("sleep");
- break;
-
- case KEY_NUMPAD0:
- return scm_from_utf8_symbol ("numpad0");
- break;
-
- case KEY_NUMPAD1:
- return scm_from_utf8_symbol ("numpad1");
- break;
-
- case KEY_NUMPAD2:
- return scm_from_utf8_symbol ("numpad2");
- break;
-
- case KEY_NUMPAD3:
- return scm_from_utf8_symbol ("numpad3");
- break;
-
- case KEY_NUMPAD4:
- return scm_from_utf8_symbol ("numpad4");
- break;
-
- case KEY_NUMPAD5:
- return scm_from_utf8_symbol ("numpad5");
- break;
-
- case KEY_NUMPAD6:
- return scm_from_utf8_symbol ("numpad6");
- break;
-
- case KEY_NUMPAD7:
- return scm_from_utf8_symbol ("numpad7");
- break;
-
- case KEY_NUMPAD8:
- return scm_from_utf8_symbol ("numpad8");
- break;
-
- case KEY_NUMPAD9:
- return scm_from_utf8_symbol ("numpad9");
- break;
-
- case KEY_MULTIPLY:
- return scm_from_utf8_symbol ("multiply");
- break;
-
- case KEY_ADD:
- return scm_from_utf8_symbol ("add");
- break;
-
- case KEY_SEPARATOR:
- return scm_from_utf8_symbol ("separator");
- break;
-
- case KEY_SUBTRACT:
- return scm_from_utf8_symbol ("subtract");
- break;
-
- case KEY_DECIMAL:
- return scm_from_utf8_symbol ("decimal");
- break;
-
- case KEY_DIVIDE:
- return scm_from_utf8_symbol ("divide");
- break;
-
- case KEY_F1:
- return scm_from_utf8_symbol ("f1");
- break;
-
- case KEY_F2:
- return scm_from_utf8_symbol ("f2");
- break;
-
- case KEY_F3:
- return scm_from_utf8_symbol ("f3");
- break;
-
- case KEY_F4:
- return scm_from_utf8_symbol ("f4");
- break;
-
- case KEY_F5:
- return scm_from_utf8_symbol ("f5");
- break;
-
- case KEY_F6:
- return scm_from_utf8_symbol ("f6");
- break;
-
- case KEY_F7:
- return scm_from_utf8_symbol ("f7");
- break;
-
- case KEY_F8:
- return scm_from_utf8_symbol ("f8");
- break;
-
- case KEY_F9:
- return scm_from_utf8_symbol ("f9");
- break;
-
- case KEY_F10:
- return scm_from_utf8_symbol ("f10");
- break;
-
- case KEY_F11:
- return scm_from_utf8_symbol ("f11");
- break;
-
- case KEY_F12:
- return scm_from_utf8_symbol ("f12");
- break;
-
- case KEY_F13:
- return scm_from_utf8_symbol ("f13");
- break;
-
- case KEY_F14:
- return scm_from_utf8_symbol ("f14");
- break;
-
- case KEY_F15:
- return scm_from_utf8_symbol ("f15");
- break;
-
- case KEY_F16:
- return scm_from_utf8_symbol ("f16");
- break;
-
- case KEY_F17:
- return scm_from_utf8_symbol ("f17");
- break;
-
- case KEY_F18:
- return scm_from_utf8_symbol ("f18");
- break;
-
- case KEY_F19:
- return scm_from_utf8_symbol ("f19");
- break;
-
- case KEY_F20:
- return scm_from_utf8_symbol ("f20");
- break;
-
- case KEY_F21:
- return scm_from_utf8_symbol ("f21");
- break;
-
- case KEY_F22:
- return scm_from_utf8_symbol ("f22");
- break;
-
- case KEY_F23:
- return scm_from_utf8_symbol ("f23");
- break;
-
- case KEY_F24:
- return scm_from_utf8_symbol ("f24");
- break;
-
- case KEY_NUMLOCK:
- return scm_from_utf8_symbol ("numlock");
- break;
-
- case KEY_SCROLL:
- return scm_from_utf8_symbol ("scroll");
- break;
-
- case KEY_LSHIFT:
- return scm_from_utf8_symbol ("lshift");
- break;
-
- case KEY_RSHIFT:
- return scm_from_utf8_symbol ("rshift");
- break;
-
- case KEY_LCONTROL:
- return scm_from_utf8_symbol ("lcontrol");
- break;
-
- case KEY_RCONTROL:
- return scm_from_utf8_symbol ("rcontrol");
- break;
-
- case KEY_LMENU:
- return scm_from_utf8_symbol ("lmenu");
- break;
-
- case KEY_RMENU:
- return scm_from_utf8_symbol ("rmenu");
- break;
-
- case KEY_OEM_1:
- return scm_from_utf8_symbol ("oem-1");
- break;
-
- case KEY_PLUS:
- return scm_from_utf8_symbol ("plus");
- break;
-
- case KEY_COMMA:
- return scm_from_utf8_symbol ("comma");
- break;
-
- case KEY_MINUS:
- return scm_from_utf8_symbol ("minus");
- break;
-
- case KEY_PERIOD:
- return scm_from_utf8_symbol ("period");
- break;
-
- case KEY_OEM_2:
- return scm_from_utf8_symbol ("oem-2");
- break;
-
- case KEY_OEM_3:
- return scm_from_utf8_symbol ("oem-3");
- break;
-
- case KEY_OEM_4:
- return scm_from_utf8_symbol ("oem-4");
- break;
-
- case KEY_OEM_5:
- return scm_from_utf8_symbol ("oem-5");
- break;
-
- case KEY_OEM_6:
- return scm_from_utf8_symbol ("oem-6");
- break;
-
- case KEY_OEM_7:
- return scm_from_utf8_symbol ("oem-7");
- break;
-
- case KEY_OEM_8:
- return scm_from_utf8_symbol ("oem-8");
- break;
-
- case KEY_OEM_AX:
- return scm_from_utf8_symbol ("oem-ax");
- break;
-
- case KEY_OEM_102:
- return scm_from_utf8_symbol ("oem-102");
- break;
-
- case KEY_ATTN:
- return scm_from_utf8_symbol ("attn");
- break;
-
- case KEY_CRSEL:
- return scm_from_utf8_symbol ("crsel");
- break;
-
- case KEY_EXSEL:
- return scm_from_utf8_symbol ("exsel");
- break;
-
- case KEY_EREOF:
- return scm_from_utf8_symbol ("ereof");
- break;
-
- case KEY_PLAY:
- return scm_from_utf8_symbol ("play");
- break;
-
- case KEY_ZOOM:
- return scm_from_utf8_symbol ("zoom");
- break;
-
- case KEY_PA1:
- return scm_from_utf8_symbol ("pa1");
- break;
-
- case KEY_OEM_CLEAR:
- return scm_from_utf8_symbol ("oem-clear");
- break;
-
- default:
- SCM code = scm_from_uint (key_code);
- scm_error (scm_arg_type_key, NULL, "Wrong key code: ~S",
- scm_list_1 (code), scm_list_1 (code));
- }
-}