764 lines
33 KiB
Java
764 lines
33 KiB
Java
/*
|
|
* 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;
|
|
}
|
|
}
|
|
|
|
}
|