/* * Copyright (c) 2002-2008 LWJGL Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'LWJGL' nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.lwjgl.opengl; /** * @author elias_naur */ import org.lwjgl.input.Keyboard; final class LinuxKeycodes { public static final int XK_Kanji = 0xff21; public static final int XK_ISO_Left_Tab = 0xfe20; public static final int XK_dead_grave = 0xfe50; public static final int XK_dead_acute = 0xfe51; public static final int XK_dead_circumflex = 0xfe52; public static final int XK_dead_tilde = 0xfe53; public static final int XK_dead_macron = 0xfe54; public static final int XK_dead_breve = 0xfe55; public static final int XK_dead_abovedot = 0xfe56; public static final int XK_dead_diaeresis = 0xfe57; public static final int XK_dead_abovering = 0xfe58; public static final int XK_dead_doubleacute = 0xfe59; public static final int XK_dead_caron = 0xfe5a; public static final int XK_dead_cedilla = 0xfe5b; public static final int XK_dead_ogonek = 0xfe5c; public static final int XK_dead_iota = 0xfe5d; public static final int XK_dead_voiced_sound = 0xfe5e; public static final int XK_dead_semivoiced_sound = 0xfe5f; public static final int XK_dead_belowdot = 0xfe60; public static final int XK_dead_hook = 0xfe61; public static final int XK_dead_horn = 0xfe62; public static final int XK_BackSpace = 0xff08; public static final int XK_Tab = 0xff09; public static final int XK_Linefeed = 0xff0a; public static final int XK_Clear = 0xff0b; public static final int XK_Return = 0xff0d; public static final int XK_Pause = 0xff13; public static final int XK_Scroll_Lock = 0xff14; public static final int XK_Sys_Req = 0xff15; public static final int XK_Escape = 0xff1b; public static final int XK_Delete = 0xffff; public static final int XK_Home = 0xff50; public static final int XK_Left = 0xff51; public static final int XK_Up = 0xff52; public static final int XK_Right = 0xff53; public static final int XK_Down = 0xff54; public static final int XK_Prior = 0xff55; public static final int XK_Page_Up = 0xff55; public static final int XK_Next = 0xff56; public static final int XK_Page_Down = 0xff56; public static final int XK_End = 0xff57; public static final int XK_Begin = 0xff58; /* Misc functions */ public static final int XK_Select = 0xff60; public static final int XK_Print = 0xff61; public static final int XK_Execute = 0xff62; public static final int XK_Insert = 0xff63; public static final int XK_Undo = 0xff65; public static final int XK_Redo = 0xff66; public static final int XK_Menu = 0xff67; public static final int XK_Find = 0xff68; public static final int XK_Cancel = 0xff69; public static final int XK_Help = 0xff6a; public static final int XK_Break = 0xff6b; public static final int XK_Mode_switch = 0xff7e; public static final int XK_script_switch = 0xff7e; public static final int XK_Num_Lock = 0xff7f; /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */ public static final int XK_KP_Space = 0xff80; public static final int XK_KP_Tab = 0xff89; public static final int XK_KP_Enter = 0xff8d; public static final int XK_KP_F1 = 0xff91; public static final int XK_KP_F2 = 0xff92; public static final int XK_KP_F3 = 0xff93; public static final int XK_KP_F4 = 0xff94; public static final int XK_KP_Home = 0xff95; public static final int XK_KP_Left = 0xff96; public static final int XK_KP_Up = 0xff97; public static final int XK_KP_Right = 0xff98; public static final int XK_KP_Down = 0xff99; public static final int XK_KP_Prior = 0xff9a; public static final int XK_KP_Page_Up = 0xff9a; public static final int XK_KP_Next = 0xff9b; public static final int XK_KP_Page_Down = 0xff9b; public static final int XK_KP_End = 0xff9c; public static final int XK_KP_Begin = 0xff9d; public static final int XK_KP_Insert = 0xff9e; public static final int XK_KP_Delete = 0xff9f; public static final int XK_KP_Equal = 0xffbd; public static final int XK_KP_Multiply = 0xffaa; public static final int XK_KP_Add = 0xffab; public static final int XK_KP_Separator = 0xffac; public static final int XK_KP_Subtract = 0xffad; public static final int XK_KP_Decimal = 0xffae; public static final int XK_KP_Divide = 0xffaf; public static final int XK_KP_0 = 0xffb0; public static final int XK_KP_1 = 0xffb1; public static final int XK_KP_2 = 0xffb2; public static final int XK_KP_3 = 0xffb3; public static final int XK_KP_4 = 0xffb4; public static final int XK_KP_5 = 0xffb5; public static final int XK_KP_6 = 0xffb6; public static final int XK_KP_7 = 0xffb7; public static final int XK_KP_8 = 0xffb8; public static final int XK_KP_9 = 0xffb9; /* * Auxilliary functions; note the duplicate definitions for left and right * function keys; Sun keyboards and a few other manufactures have such * function key groups on the left and/or right sides of the keyboard. * We've not found a keyboard with more than 35 function keys total. */ public static final int XK_F1 = 0xffbe; public static final int XK_F2 = 0xffbf; public static final int XK_F3 = 0xffc0; public static final int XK_F4 = 0xffc1; public static final int XK_F5 = 0xffc2; public static final int XK_F6 = 0xffc3; public static final int XK_F7 = 0xffc4; public static final int XK_F8 = 0xffc5; public static final int XK_F9 = 0xffc6; public static final int XK_F10 = 0xffc7; public static final int XK_F11 = 0xffc8; public static final int XK_L1 = 0xffc8; public static final int XK_F12 = 0xffc9; public static final int XK_L2 = 0xffc9; public static final int XK_F13 = 0xffca; public static final int XK_L3 = 0xffca; public static final int XK_F14 = 0xffcb; public static final int XK_L4 = 0xffcb; public static final int XK_F15 = 0xffcc; public static final int XK_L5 = 0xffcc; public static final int XK_F16 = 0xffcd; public static final int XK_L6 = 0xffcd; public static final int XK_F17 = 0xffce; public static final int XK_L7 = 0xffce; public static final int XK_F18 = 0xffcf; public static final int XK_L8 = 0xffcf; public static final int XK_F19 = 0xffd0; public static final int XK_L9 = 0xffd0; public static final int XK_F20 = 0xffd1; public static final int XK_L10 = 0xffd1; public static final int XK_F21 = 0xffd2; public static final int XK_R1 = 0xffd2; public static final int XK_F22 = 0xffd3; public static final int XK_R2 = 0xffd3; public static final int XK_F23 = 0xffd4; public static final int XK_R3 = 0xffd4; public static final int XK_F24 = 0xffd5; public static final int XK_R4 = 0xffd5; public static final int XK_F25 = 0xffd6; public static final int XK_R5 = 0xffd6; public static final int XK_F26 = 0xffd7; public static final int XK_R6 = 0xffd7; public static final int XK_F27 = 0xffd8; public static final int XK_R7 = 0xffd8; public static final int XK_F28 = 0xffd9; public static final int XK_R8 = 0xffd9; public static final int XK_F29 = 0xffda; public static final int XK_R9 = 0xffda; public static final int XK_F30 = 0xffdb; public static final int XK_R10 = 0xffdb; public static final int XK_F31 = 0xffdc; public static final int XK_R11 = 0xffdc; public static final int XK_F32 = 0xffdd; public static final int XK_R12 = 0xffdd; public static final int XK_F33 = 0xffde; public static final int XK_R13 = 0xffde; public static final int XK_F34 = 0xffdf; public static final int XK_R14 = 0xffdf; public static final int XK_F35 = 0xffe0; public static final int XK_R15 = 0xffe0; /* Modifiers */ public static final int XK_Shift_L = 0xffe1; public static final int XK_Shift_R = 0xffe2; public static final int XK_Control_L = 0xffe3; public static final int XK_Control_R = 0xffe4; public static final int XK_Caps_Lock = 0xffe5; public static final int XK_Shift_Lock = 0xffe6; public static final int XK_Meta_L = 0xffe7; public static final int XK_Meta_R = 0xffe8; public static final int XK_Alt_L = 0xffe9; public static final int XK_Alt_R = 0xffea; public static final int XK_Super_L = 0xffeb; public static final int XK_Super_R = 0xffec; public static final int XK_Hyper_L = 0xffed; public static final int XK_Hyper_R = 0xffee; public static final int XK_space = 0x0020; public static final int XK_exclam = 0x0021; public static final int XK_quotedbl = 0x0022; public static final int XK_numbersign = 0x0023; public static final int XK_dollar = 0x0024; public static final int XK_percent = 0x0025; public static final int XK_ampersand = 0x0026; public static final int XK_apostrophe = 0x0027; public static final int XK_quoteright = 0x0027; public static final int XK_parenleft = 0x0028; public static final int XK_parenright = 0x0029; public static final int XK_asterisk = 0x002a; public static final int XK_plus = 0x002b; public static final int XK_comma = 0x002c; public static final int XK_minus = 0x002d; public static final int XK_period = 0x002e; public static final int XK_slash = 0x002f; public static final int XK_0 = 0x0030; public static final int XK_1 = 0x0031; public static final int XK_2 = 0x0032; public static final int XK_3 = 0x0033; public static final int XK_4 = 0x0034; public static final int XK_5 = 0x0035; public static final int XK_6 = 0x0036; public static final int XK_7 = 0x0037; public static final int XK_8 = 0x0038; public static final int XK_9 = 0x0039; public static final int XK_colon = 0x003a; public static final int XK_semicolon = 0x003b; public static final int XK_less = 0x003c; public static final int XK_equal = 0x003d; public static final int XK_greater = 0x003e; public static final int XK_question = 0x003f; public static final int XK_at = 0x0040; public static final int XK_A = 0x0041; public static final int XK_B = 0x0042; public static final int XK_C = 0x0043; public static final int XK_D = 0x0044; public static final int XK_E = 0x0045; public static final int XK_F = 0x0046; public static final int XK_G = 0x0047; public static final int XK_H = 0x0048; public static final int XK_I = 0x0049; public static final int XK_J = 0x004a; public static final int XK_K = 0x004b; public static final int XK_L = 0x004c; public static final int XK_M = 0x004d; public static final int XK_N = 0x004e; public static final int XK_O = 0x004f; public static final int XK_P = 0x0050; public static final int XK_Q = 0x0051; public static final int XK_R = 0x0052; public static final int XK_S = 0x0053; public static final int XK_T = 0x0054; public static final int XK_U = 0x0055; public static final int XK_V = 0x0056; public static final int XK_W = 0x0057; public static final int XK_X = 0x0058; public static final int XK_Y = 0x0059; public static final int XK_Z = 0x005a; public static final int XK_bracketleft = 0x005b; public static final int XK_backslash = 0x005c; public static final int XK_bracketright = 0x005d; public static final int XK_asciicircum = 0x005e; public static final int XK_underscore = 0x005f; public static final int XK_grave = 0x0060; public static final int XK_quoteleft = 0x0060; public static final int XK_a = 0x0061; public static final int XK_b = 0x0062; public static final int XK_c = 0x0063; public static final int XK_d = 0x0064; public static final int XK_e = 0x0065; public static final int XK_f = 0x0066; public static final int XK_g = 0x0067; public static final int XK_h = 0x0068; public static final int XK_i = 0x0069; public static final int XK_j = 0x006a; public static final int XK_k = 0x006b; public static final int XK_l = 0x006c; public static final int XK_m = 0x006d; public static final int XK_n = 0x006e; public static final int XK_o = 0x006f; public static final int XK_p = 0x0070; public static final int XK_q = 0x0071; public static final int XK_r = 0x0072; public static final int XK_s = 0x0073; public static final int XK_t = 0x0074; public static final int XK_u = 0x0075; public static final int XK_v = 0x0076; public static final int XK_w = 0x0077; public static final int XK_x = 0x0078; public static final int XK_y = 0x0079; public static final int XK_z = 0x007a; public static final int XK_braceleft = 0x007b; public static final int XK_bar = 0x007c; public static final int XK_braceright = 0x007d; public static final int XK_asciitilde = 0x007e; public static final int XK_nobreakspace = 0x00a0; public static final int XK_exclamdown = 0x00a1; public static final int XK_cent = 0x00a2; public static final int XK_sterling = 0x00a3; public static final int XK_currency = 0x00a4; public static final int XK_yen = 0x00a5; public static final int XK_brokenbar = 0x00a6; public static final int XK_section = 0x00a7; public static final int XK_diaeresis = 0x00a8; public static final int XK_copyright = 0x00a9; public static final int XK_ordfeminine = 0x00aa; public static final int XK_guillemotleft = 0x00ab; public static final int XK_notsign = 0x00ac; public static final int XK_hyphen = 0x00ad; public static final int XK_registered = 0x00ae; public static final int XK_macron = 0x00af; public static final int XK_degree = 0x00b0; public static final int XK_plusminus = 0x00b1; public static final int XK_twosuperior = 0x00b2; public static final int XK_threesuperior = 0x00b3; public static final int XK_acute = 0x00b4; public static final int XK_mu = 0x00b5; public static final int XK_paragraph = 0x00b6; public static final int XK_periodcentered = 0x00b7; public static final int XK_cedilla = 0x00b8; public static final int XK_onesuperior = 0x00b9; public static final int XK_masculine = 0x00ba; public static final int XK_guillemotright = 0x00bb; public static final int XK_onequarter = 0x00bc; public static final int XK_onehalf = 0x00bd; public static final int XK_threequarters = 0x00be; public static final int XK_questiondown = 0x00bf; public static final int XK_Agrave = 0x00c0; public static final int XK_Aacute = 0x00c1; public static final int XK_Acircumflex = 0x00c2; public static final int XK_Atilde = 0x00c3; public static final int XK_Adiaeresis = 0x00c4; public static final int XK_Aring = 0x00c5; public static final int XK_AE = 0x00c6; public static final int XK_Ccedilla = 0x00c7; public static final int XK_Egrave = 0x00c8; public static final int XK_Eacute = 0x00c9; public static final int XK_Ecircumflex = 0x00ca; public static final int XK_Ediaeresis = 0x00cb; public static final int XK_Igrave = 0x00cc; public static final int XK_Iacute = 0x00cd; public static final int XK_Icircumflex = 0x00ce; public static final int XK_Idiaeresis = 0x00cf; public static final int XK_ETH = 0x00d0; public static final int XK_Eth = 0x00d0; public static final int XK_Ntilde = 0x00d1; public static final int XK_Ograve = 0x00d2; public static final int XK_Oacute = 0x00d3; public static final int XK_Ocircumflex = 0x00d4; public static final int XK_Otilde = 0x00d5; public static final int XK_Odiaeresis = 0x00d6; public static final int XK_multiply = 0x00d7; public static final int XK_Oslash = 0x00d8; public static final int XK_Ooblique = 0x00d8; public static final int XK_Ugrave = 0x00d9; public static final int XK_Uacute = 0x00da; public static final int XK_Ucircumflex = 0x00db; public static final int XK_Udiaeresis = 0x00dc; public static final int XK_Yacute = 0x00dd; public static final int XK_THORN = 0x00de; public static final int XK_Thorn = 0x00de; public static final int XK_ssharp = 0x00df; public static final int XK_agrave = 0x00e0; public static final int XK_aacute = 0x00e1; public static final int XK_acircumflex = 0x00e2; public static final int XK_atilde = 0x00e3; public static final int XK_adiaeresis = 0x00e4; public static final int XK_aring = 0x00e5; public static final int XK_ae = 0x00e6; public static final int XK_ccedilla = 0x00e7; public static final int XK_egrave = 0x00e8; public static final int XK_eacute = 0x00e9; public static final int XK_ecircumflex = 0x00ea; public static final int XK_ediaeresis = 0x00eb; public static final int XK_igrave = 0x00ec; public static final int XK_iacute = 0x00ed; public static final int XK_icircumflex = 0x00ee; public static final int XK_idiaeresis = 0x00ef; public static final int XK_eth = 0x00f0; public static final int XK_ntilde = 0x00f1; public static final int XK_ograve = 0x00f2; public static final int XK_oacute = 0x00f3; public static final int XK_ocircumflex = 0x00f4; public static final int XK_otilde = 0x00f5; public static final int XK_odiaeresis = 0x00f6; public static final int XK_division = 0x00f7; public static final int XK_oslash = 0x00f8; public static final int XK_ooblique = 0x00f8; public static final int XK_ugrave = 0x00f9; public static final int XK_uacute = 0x00fa; public static final int XK_ucircumflex = 0x00fb; public static final int XK_udiaeresis = 0x00fc; public static final int XK_yacute = 0x00fd; public static final int XK_thorn = 0x00fe; public static final int XK_ydiaeresis = 0x00ff; public static final int XK_ISO_Level3_Shift = 0xfe03; public static int mapKeySymToLWJGLKeyCode(long keysym) { switch ((int)keysym) { case XK_BackSpace: return Keyboard.KEY_BACK; case XK_ISO_Left_Tab: case XK_Tab: return Keyboard.KEY_TAB; case XK_Return: return Keyboard.KEY_RETURN; case XK_Pause: return Keyboard.KEY_PAUSE; case XK_Scroll_Lock: return Keyboard.KEY_SCROLL; case XK_Sys_Req: return Keyboard.KEY_SYSRQ; case XK_Escape: return Keyboard.KEY_ESCAPE; case XK_Delete: return Keyboard.KEY_DELETE; /* Japanese keyboard support */ case XK_Kanji: return Keyboard.KEY_KANJI; /* Cursor control & motion */ case XK_Home: return Keyboard.KEY_HOME; case XK_Left: return Keyboard.KEY_LEFT; case XK_Up: return Keyboard.KEY_UP; case XK_Right: return Keyboard.KEY_RIGHT; case XK_Down: return Keyboard.KEY_DOWN; case XK_Page_Up: return Keyboard.KEY_PRIOR; case XK_Page_Down: return Keyboard.KEY_NEXT; case XK_End: return Keyboard.KEY_END; /* Misc Functions */ case XK_Break: return Keyboard.KEY_PAUSE; case XK_Insert: return Keyboard.KEY_INSERT; case XK_Num_Lock: return Keyboard.KEY_NUMLOCK; /* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ case XK_KP_Space: return Keyboard.KEY_SPACE; case XK_KP_Tab: return Keyboard.KEY_TAB; case XK_KP_Enter: return Keyboard.KEY_NUMPADENTER; case XK_KP_F1: return Keyboard.KEY_F1; case XK_KP_F2: return Keyboard.KEY_F2; case XK_KP_F3: return Keyboard.KEY_F3; case XK_KP_F4: return Keyboard.KEY_F4; case XK_KP_Home: return Keyboard.KEY_HOME; case XK_KP_Left: return Keyboard.KEY_LEFT; case XK_KP_Up: return Keyboard.KEY_UP; case XK_KP_Right: return Keyboard.KEY_RIGHT; case XK_KP_Down: return Keyboard.KEY_DOWN; case XK_KP_Page_Up: return Keyboard.KEY_PRIOR; case XK_KP_Page_Down: return Keyboard.KEY_NEXT; case XK_KP_End: return Keyboard.KEY_END; case XK_KP_Insert: return Keyboard.KEY_INSERT; case XK_KP_Delete: return Keyboard.KEY_DELETE; case XK_KP_Equal: return Keyboard.KEY_NUMPADEQUALS; case XK_KP_Multiply: return Keyboard.KEY_MULTIPLY; case XK_KP_Add: return Keyboard.KEY_ADD; case XK_KP_Subtract: return Keyboard.KEY_SUBTRACT; case XK_KP_Decimal: return Keyboard.KEY_DECIMAL; case XK_KP_Divide: return Keyboard.KEY_DIVIDE; case XK_KP_0: return Keyboard.KEY_NUMPAD0; case XK_KP_1: return Keyboard.KEY_NUMPAD1; case XK_KP_2: return Keyboard.KEY_NUMPAD2; case XK_KP_3: return Keyboard.KEY_NUMPAD3; case XK_KP_4: return Keyboard.KEY_NUMPAD4; case XK_KP_5: return Keyboard.KEY_NUMPAD5; case XK_KP_6: return Keyboard.KEY_NUMPAD6; case XK_KP_7: return Keyboard.KEY_NUMPAD7; case XK_KP_8: return Keyboard.KEY_NUMPAD8; case XK_KP_9: return Keyboard.KEY_NUMPAD9; /* * Auxilliary Functions; note the duplicate definitions for left and right * function keys; Sun keyboards and a few other manufactures have such * function key groups on the left and/or right sides of the keyboard. * We've not found a keyboard with more than 35 function keys total. */ case XK_F1: return Keyboard.KEY_F1; case XK_F2: return Keyboard.KEY_F2; case XK_F3: return Keyboard.KEY_F3; case XK_F4: return Keyboard.KEY_F4; case XK_F5: return Keyboard.KEY_F5; case XK_F6: return Keyboard.KEY_F6; case XK_F7: return Keyboard.KEY_F7; case XK_F8: return Keyboard.KEY_F8; case XK_F9: return Keyboard.KEY_F9; case XK_F10: return Keyboard.KEY_F10; case XK_F11: return Keyboard.KEY_F11; case XK_F12: return Keyboard.KEY_F12; case XK_F13: return Keyboard.KEY_F13; case XK_F14: return Keyboard.KEY_F14; case XK_F15: return Keyboard.KEY_F15; /* Modifiers */ case XK_Shift_L: return Keyboard.KEY_LSHIFT; case XK_Shift_R: return Keyboard.KEY_RSHIFT; case XK_Control_L: return Keyboard.KEY_LCONTROL; case XK_Control_R: return Keyboard.KEY_RCONTROL; case XK_Caps_Lock: return Keyboard.KEY_CAPITAL; case XK_Meta_L: return Keyboard.KEY_LMENU; case XK_ISO_Level3_Shift: case XK_Meta_R: return Keyboard.KEY_RMENU; case XK_Alt_L: return Keyboard.KEY_LMENU; case XK_Alt_R: return Keyboard.KEY_RMENU; case XK_dead_grave: return Keyboard.KEY_GRAVE; case XK_dead_circumflex: return Keyboard.KEY_CIRCUMFLEX; /* * Latin 1 * Byte 3 = 0 */ case XK_space: return Keyboard.KEY_SPACE; case XK_apostrophe: return Keyboard.KEY_APOSTROPHE; case XK_comma: return Keyboard.KEY_COMMA; case XK_minus: return Keyboard.KEY_MINUS; case XK_period: return Keyboard.KEY_PERIOD; case XK_slash: return Keyboard.KEY_SLASH; case XK_0: return Keyboard.KEY_0; case XK_1: return Keyboard.KEY_1; case XK_2: return Keyboard.KEY_2; case XK_3: return Keyboard.KEY_3; case XK_4: return Keyboard.KEY_4; case XK_5: return Keyboard.KEY_5; case XK_6: return Keyboard.KEY_6; case XK_7: return Keyboard.KEY_7; case XK_8: return Keyboard.KEY_8; case XK_9: return Keyboard.KEY_9; case XK_colon: return Keyboard.KEY_COLON; case XK_semicolon: return Keyboard.KEY_SEMICOLON; case XK_equal: return Keyboard.KEY_EQUALS; case XK_at: return Keyboard.KEY_AT; case XK_bracketleft: return Keyboard.KEY_LBRACKET; case XK_bracketright: return Keyboard.KEY_RBRACKET; case XK_asciicircum: return Keyboard.KEY_CIRCUMFLEX; case XK_underscore: return Keyboard.KEY_UNDERLINE; case XK_grave: return Keyboard.KEY_GRAVE; case XK_a: case XK_A: return Keyboard.KEY_A; case XK_b: case XK_B: return Keyboard.KEY_B; case XK_c: case XK_C: return Keyboard.KEY_C; case XK_d: case XK_D: return Keyboard.KEY_D; case XK_e: case XK_E: return Keyboard.KEY_E; case XK_f: case XK_F: return Keyboard.KEY_F; case XK_g: case XK_G: return Keyboard.KEY_G; case XK_h: case XK_H: return Keyboard.KEY_H; case XK_i: case XK_I: return Keyboard.KEY_I; case XK_j: case XK_J: return Keyboard.KEY_J; case XK_k: case XK_K: return Keyboard.KEY_K; case XK_l: case XK_L: return Keyboard.KEY_L; case XK_m: case XK_M: return Keyboard.KEY_M; case XK_n: case XK_N: return Keyboard.KEY_N; case XK_o: case XK_O: return Keyboard.KEY_O; case XK_p: case XK_P: return Keyboard.KEY_P; case XK_q: case XK_Q: return Keyboard.KEY_Q; case XK_r: case XK_R: return Keyboard.KEY_R; case XK_s: case XK_S: return Keyboard.KEY_S; case XK_t: case XK_T: return Keyboard.KEY_T; case XK_u: case XK_U: return Keyboard.KEY_U; case XK_v: case XK_V: return Keyboard.KEY_V; case XK_w: case XK_W: return Keyboard.KEY_W; case XK_x: case XK_X: return Keyboard.KEY_X; case XK_y: case XK_Y: return Keyboard.KEY_Y; case XK_z: case XK_Z: return Keyboard.KEY_Z; default: return Keyboard.KEY_NONE; } } }