aboutsummaryrefslogtreecommitdiffstats
path: root/src/x11/ffi.rs
diff options
context:
space:
mode:
authorPierre Krieger <pierre.krieger1708@gmail.com>2014-07-28 14:15:02 +0200
committerPierre Krieger <pierre.krieger1708@gmail.com>2014-07-28 14:41:12 +0200
commitc1da2b1273cb1154625a942633bdc2d09b64d680 (patch)
tree1b7b16a3291d18c28715856cff3d9440e39214bd /src/x11/ffi.rs
parent433c5b956ee83e2a1c3be67e5333db90c9c3cb8a (diff)
downloadglutin-c1da2b1273cb1154625a942633bdc2d09b64d680.tar.gz
glutin-c1da2b1273cb1154625a942633bdc2d09b64d680.zip
Work on input support for X11
Diffstat (limited to 'src/x11/ffi.rs')
-rw-r--r--src/x11/ffi.rs1037
1 files changed, 1037 insertions, 0 deletions
diff --git a/src/x11/ffi.rs b/src/x11/ffi.rs
index c021867..553c62e 100644
--- a/src/x11/ffi.rs
+++ b/src/x11/ffi.rs
@@ -16,6 +16,8 @@ pub type GLXFBConfig = ();
pub type GLXPbuffer = XID;
pub type GLXPixmap = XID;
pub type GLXWindow = XID;
+pub type KeyCode = libc::c_ulong;
+pub type KeySym = XID;
pub type Pixmap = XID;
pub type Status = libc::c_int; // TODO: not sure
pub type Time = libc::c_ulong;
@@ -191,6 +193,1001 @@ pub static GLX_PBUFFER: libc::c_int = 0x8023;
pub static GLX_PBUFFER_HEIGHT: libc::c_int = 0x8040;
pub static GLX_PBUFFER_WIDTH: libc::c_int = 0x8041;
+pub static XK_BackSpace: libc::c_uint = 0xFF08;
+pub static XK_Tab: libc::c_uint = 0xFF09;
+pub static XK_Linefeed: libc::c_uint = 0xFF0A;
+pub static XK_Clear: libc::c_uint = 0xFF0B;
+pub static XK_Return: libc::c_uint = 0xFF0D;
+pub static XK_Pause: libc::c_uint = 0xFF13;
+pub static XK_Scroll_Lock: libc::c_uint = 0xFF14;
+pub static XK_Sys_Req: libc::c_uint = 0xFF15;
+pub static XK_Escape: libc::c_uint = 0xFF1B;
+pub static XK_Delete: libc::c_uint = 0xFFFF;
+pub static XK_Multi_key: libc::c_uint = 0xFF20;
+pub static XK_Kanji: libc::c_uint = 0xFF21;
+pub static XK_Muhenkan: libc::c_uint = 0xFF22;
+pub static XK_Henkan_Mode: libc::c_uint = 0xFF23;
+pub static XK_Henkan: libc::c_uint = 0xFF23;
+pub static XK_Romaji: libc::c_uint = 0xFF24;
+pub static XK_Hiragana: libc::c_uint = 0xFF25;
+pub static XK_Katakana: libc::c_uint = 0xFF26;
+pub static XK_Hiragana_Katakana: libc::c_uint = 0xFF27;
+pub static XK_Zenkaku: libc::c_uint = 0xFF28;
+pub static XK_Hankaku: libc::c_uint = 0xFF29;
+pub static XK_Zenkaku_Hankaku: libc::c_uint = 0xFF2A;
+pub static XK_Touroku: libc::c_uint = 0xFF2B;
+pub static XK_Massyo: libc::c_uint = 0xFF2C;
+pub static XK_Kana_Lock: libc::c_uint = 0xFF2D;
+pub static XK_Kana_Shift: libc::c_uint = 0xFF2E;
+pub static XK_Eisu_Shift: libc::c_uint = 0xFF2F;
+pub static XK_Eisu_toggle: libc::c_uint = 0xFF30;
+pub static XK_Home: libc::c_uint = 0xFF50;
+pub static XK_Left: libc::c_uint = 0xFF51;
+pub static XK_Up: libc::c_uint = 0xFF52;
+pub static XK_Right: libc::c_uint = 0xFF53;
+pub static XK_Down: libc::c_uint = 0xFF54;
+pub static XK_Prior: libc::c_uint = 0xFF55;
+pub static XK_Page_Up: libc::c_uint = 0xFF55;
+pub static XK_Next: libc::c_uint = 0xFF56;
+pub static XK_Page_Down: libc::c_uint = 0xFF56;
+pub static XK_End: libc::c_uint = 0xFF57;
+pub static XK_Begin: libc::c_uint = 0xFF58;
+pub static XK_Win_L: libc::c_uint = 0xFF5B;
+pub static XK_Win_R: libc::c_uint = 0xFF5C;
+pub static XK_App: libc::c_uint = 0xFF5D;
+pub static XK_Select: libc::c_uint = 0xFF60;
+pub static XK_Print: libc::c_uint = 0xFF61;
+pub static XK_Execute: libc::c_uint = 0xFF62;
+pub static XK_Insert: libc::c_uint = 0xFF63;
+pub static XK_Undo: libc::c_uint = 0xFF65;
+pub static XK_Redo: libc::c_uint = 0xFF66;
+pub static XK_Menu: libc::c_uint = 0xFF67;
+pub static XK_Find: libc::c_uint = 0xFF68;
+pub static XK_Cancel: libc::c_uint = 0xFF69;
+pub static XK_Help: libc::c_uint = 0xFF6A;
+pub static XK_Break: libc::c_uint = 0xFF6B;
+pub static XK_Mode_switch: libc::c_uint = 0xFF7E;
+pub static XK_script_switch: libc::c_uint = 0xFF7E;
+pub static XK_Num_Lock: libc::c_uint = 0xFF7F;
+pub static XK_KP_Space: libc::c_uint = 0xFF80;
+pub static XK_KP_Tab: libc::c_uint = 0xFF89;
+pub static XK_KP_Enter: libc::c_uint = 0xFF8D;
+pub static XK_KP_F1: libc::c_uint = 0xFF91;
+pub static XK_KP_F2: libc::c_uint = 0xFF92;
+pub static XK_KP_F3: libc::c_uint = 0xFF93;
+pub static XK_KP_F4: libc::c_uint = 0xFF94;
+pub static XK_KP_Home: libc::c_uint = 0xFF95;
+pub static XK_KP_Left: libc::c_uint = 0xFF96;
+pub static XK_KP_Up: libc::c_uint = 0xFF97;
+pub static XK_KP_Right: libc::c_uint = 0xFF98;
+pub static XK_KP_Down: libc::c_uint = 0xFF99;
+pub static XK_KP_Prior: libc::c_uint = 0xFF9A;
+pub static XK_KP_Page_Up: libc::c_uint = 0xFF9A;
+pub static XK_KP_Next: libc::c_uint = 0xFF9B;
+pub static XK_KP_Page_Down: libc::c_uint = 0xFF9B;
+pub static XK_KP_End: libc::c_uint = 0xFF9C;
+pub static XK_KP_Begin: libc::c_uint = 0xFF9D;
+pub static XK_KP_Insert: libc::c_uint = 0xFF9E;
+pub static XK_KP_Delete: libc::c_uint = 0xFF9F;
+pub static XK_KP_Equal: libc::c_uint = 0xFFBD;
+pub static XK_KP_Multiply: libc::c_uint = 0xFFAA;
+pub static XK_KP_Add: libc::c_uint = 0xFFAB;
+pub static XK_KP_Separator: libc::c_uint = 0xFFAC;
+pub static XK_KP_Subtract: libc::c_uint = 0xFFAD;
+pub static XK_KP_Decimal: libc::c_uint = 0xFFAE;
+pub static XK_KP_Divide: libc::c_uint = 0xFFAF;
+pub static XK_KP_0: libc::c_uint = 0xFFB0;
+pub static XK_KP_1: libc::c_uint = 0xFFB1;
+pub static XK_KP_2: libc::c_uint = 0xFFB2;
+pub static XK_KP_3: libc::c_uint = 0xFFB3;
+pub static XK_KP_4: libc::c_uint = 0xFFB4;
+pub static XK_KP_5: libc::c_uint = 0xFFB5;
+pub static XK_KP_6: libc::c_uint = 0xFFB6;
+pub static XK_KP_7: libc::c_uint = 0xFFB7;
+pub static XK_KP_8: libc::c_uint = 0xFFB8;
+pub static XK_KP_9: libc::c_uint = 0xFFB9;
+pub static XK_F1: libc::c_uint = 0xFFBE;
+pub static XK_F2: libc::c_uint = 0xFFBF;
+pub static XK_F3: libc::c_uint = 0xFFC0;
+pub static XK_F4: libc::c_uint = 0xFFC1;
+pub static XK_F5: libc::c_uint = 0xFFC2;
+pub static XK_F6: libc::c_uint = 0xFFC3;
+pub static XK_F7: libc::c_uint = 0xFFC4;
+pub static XK_F8: libc::c_uint = 0xFFC5;
+pub static XK_F9: libc::c_uint = 0xFFC6;
+pub static XK_F10: libc::c_uint = 0xFFC7;
+pub static XK_F11: libc::c_uint = 0xFFC8;
+pub static XK_L1: libc::c_uint = 0xFFC8;
+pub static XK_F12: libc::c_uint = 0xFFC9;
+pub static XK_L2: libc::c_uint = 0xFFC9;
+pub static XK_F13: libc::c_uint = 0xFFCA;
+pub static XK_L3: libc::c_uint = 0xFFCA;
+pub static XK_F14: libc::c_uint = 0xFFCB;
+pub static XK_L4: libc::c_uint = 0xFFCB;
+pub static XK_F15: libc::c_uint = 0xFFCC;
+pub static XK_L5: libc::c_uint = 0xFFCC;
+pub static XK_F16: libc::c_uint = 0xFFCD;
+pub static XK_L6: libc::c_uint = 0xFFCD;
+pub static XK_F17: libc::c_uint = 0xFFCE;
+pub static XK_L7: libc::c_uint = 0xFFCE;
+pub static XK_F18: libc::c_uint = 0xFFCF;
+pub static XK_L8: libc::c_uint = 0xFFCF;
+pub static XK_F19: libc::c_uint = 0xFFD0;
+pub static XK_L9: libc::c_uint = 0xFFD0;
+pub static XK_F20: libc::c_uint = 0xFFD1;
+pub static XK_L10: libc::c_uint = 0xFFD1;
+pub static XK_F21: libc::c_uint = 0xFFD2;
+pub static XK_R1: libc::c_uint = 0xFFD2;
+pub static XK_F22: libc::c_uint = 0xFFD3;
+pub static XK_R2: libc::c_uint = 0xFFD3;
+pub static XK_F23: libc::c_uint = 0xFFD4;
+pub static XK_R3: libc::c_uint = 0xFFD4;
+pub static XK_F24: libc::c_uint = 0xFFD5;
+pub static XK_R4: libc::c_uint = 0xFFD5;
+pub static XK_F25: libc::c_uint = 0xFFD6;
+pub static XK_R5: libc::c_uint = 0xFFD6;
+pub static XK_F26: libc::c_uint = 0xFFD7;
+pub static XK_R6: libc::c_uint = 0xFFD7;
+pub static XK_F27: libc::c_uint = 0xFFD8;
+pub static XK_R7: libc::c_uint = 0xFFD8;
+pub static XK_F28: libc::c_uint = 0xFFD9;
+pub static XK_R8: libc::c_uint = 0xFFD9;
+pub static XK_F29: libc::c_uint = 0xFFDA;
+pub static XK_R9: libc::c_uint = 0xFFDA;
+pub static XK_F30: libc::c_uint = 0xFFDB;
+pub static XK_R10: libc::c_uint = 0xFFDB;
+pub static XK_F31: libc::c_uint = 0xFFDC;
+pub static XK_R11: libc::c_uint = 0xFFDC;
+pub static XK_F32: libc::c_uint = 0xFFDD;
+pub static XK_R12: libc::c_uint = 0xFFDD;
+pub static XK_F33: libc::c_uint = 0xFFDE;
+pub static XK_R13: libc::c_uint = 0xFFDE;
+pub static XK_F34: libc::c_uint = 0xFFDF;
+pub static XK_R14: libc::c_uint = 0xFFDF;
+pub static XK_F35: libc::c_uint = 0xFFE0;
+pub static XK_R15: libc::c_uint = 0xFFE0;
+pub static XK_Shift_L: libc::c_uint = 0xFFE1;
+pub static XK_Shift_R: libc::c_uint = 0xFFE2;
+pub static XK_Control_L: libc::c_uint = 0xFFE3;
+pub static XK_Control_R: libc::c_uint = 0xFFE4;
+pub static XK_Caps_Lock: libc::c_uint = 0xFFE5;
+pub static XK_Shift_Lock: libc::c_uint = 0xFFE6;
+pub static XK_Meta_L: libc::c_uint = 0xFFE7;
+pub static XK_Meta_R: libc::c_uint = 0xFFE8;
+pub static XK_Alt_L: libc::c_uint = 0xFFE9;
+pub static XK_Alt_R: libc::c_uint = 0xFFEA;
+pub static XK_Super_L: libc::c_uint = 0xFFEB;
+pub static XK_Super_R: libc::c_uint = 0xFFEC;
+pub static XK_Hyper_L: libc::c_uint = 0xFFED;
+pub static XK_Hyper_R: libc::c_uint = 0xFFEE;
+pub static XK_space: libc::c_uint = 0x020;
+pub static XK_exclam: libc::c_uint = 0x021;
+pub static XK_quotedbl: libc::c_uint = 0x022;
+pub static XK_numbersign: libc::c_uint = 0x023;
+pub static XK_dollar: libc::c_uint = 0x024;
+pub static XK_percent: libc::c_uint = 0x025;
+pub static XK_ampersand: libc::c_uint = 0x026;
+pub static XK_apostrophe: libc::c_uint = 0x027;
+pub static XK_quoteright: libc::c_uint = 0x027;
+pub static XK_parenleft: libc::c_uint = 0x028;
+pub static XK_parenright: libc::c_uint = 0x029;
+pub static XK_asterisk: libc::c_uint = 0x02a;
+pub static XK_plus: libc::c_uint = 0x02b;
+pub static XK_comma: libc::c_uint = 0x02c;
+pub static XK_minus: libc::c_uint = 0x02d;
+pub static XK_period: libc::c_uint = 0x02e;
+pub static XK_slash: libc::c_uint = 0x02f;
+pub static XK_0: libc::c_uint = 0x030;
+pub static XK_1: libc::c_uint = 0x031;
+pub static XK_2: libc::c_uint = 0x032;
+pub static XK_3: libc::c_uint = 0x033;
+pub static XK_4: libc::c_uint = 0x034;
+pub static XK_5: libc::c_uint = 0x035;
+pub static XK_6: libc::c_uint = 0x036;
+pub static XK_7: libc::c_uint = 0x037;
+pub static XK_8: libc::c_uint = 0x038;
+pub static XK_9: libc::c_uint = 0x039;
+pub static XK_colon: libc::c_uint = 0x03a;
+pub static XK_semicolon: libc::c_uint = 0x03b;
+pub static XK_less: libc::c_uint = 0x03c;
+pub static XK_equal: libc::c_uint = 0x03d;
+pub static XK_greater: libc::c_uint = 0x03e;
+pub static XK_question: libc::c_uint = 0x03f;
+pub static XK_at: libc::c_uint = 0x040;
+pub static XK_A: libc::c_uint = 0x041;
+pub static XK_B: libc::c_uint = 0x042;
+pub static XK_C: libc::c_uint = 0x043;
+pub static XK_D: libc::c_uint = 0x044;
+pub static XK_E: libc::c_uint = 0x045;
+pub static XK_F: libc::c_uint = 0x046;
+pub static XK_G: libc::c_uint = 0x047;
+pub static XK_H: libc::c_uint = 0x048;
+pub static XK_I: libc::c_uint = 0x049;
+pub static XK_J: libc::c_uint = 0x04a;
+pub static XK_K: libc::c_uint = 0x04b;
+pub static XK_L: libc::c_uint = 0x04c;
+pub static XK_M: libc::c_uint = 0x04d;
+pub static XK_N: libc::c_uint = 0x04e;
+pub static XK_O: libc::c_uint = 0x04f;
+pub static XK_P: libc::c_uint = 0x050;
+pub static XK_Q: libc::c_uint = 0x051;
+pub static XK_R: libc::c_uint = 0x052;
+pub static XK_S: libc::c_uint = 0x053;
+pub static XK_T: libc::c_uint = 0x054;
+pub static XK_U: libc::c_uint = 0x055;
+pub static XK_V: libc::c_uint = 0x056;
+pub static XK_W: libc::c_uint = 0x057;
+pub static XK_X: libc::c_uint = 0x058;
+pub static XK_Y: libc::c_uint = 0x059;
+pub static XK_Z: libc::c_uint = 0x05a;
+pub static XK_bracketleft: libc::c_uint = 0x05b;
+pub static XK_backslash: libc::c_uint = 0x05c;
+pub static XK_bracketright: libc::c_uint = 0x05d;
+pub static XK_asciicircum: libc::c_uint = 0x05e;
+pub static XK_underscore: libc::c_uint = 0x05f;
+pub static XK_grave: libc::c_uint = 0x060;
+pub static XK_quoteleft: libc::c_uint = 0x060;
+pub static XK_a: libc::c_uint = 0x061;
+pub static XK_b: libc::c_uint = 0x062;
+pub static XK_c: libc::c_uint = 0x063;
+pub static XK_d: libc::c_uint = 0x064;
+pub static XK_e: libc::c_uint = 0x065;
+pub static XK_f: libc::c_uint = 0x066;
+pub static XK_g: libc::c_uint = 0x067;
+pub static XK_h: libc::c_uint = 0x068;
+pub static XK_i: libc::c_uint = 0x069;
+pub static XK_j: libc::c_uint = 0x06a;
+pub static XK_k: libc::c_uint = 0x06b;
+pub static XK_l: libc::c_uint = 0x06c;
+pub static XK_m: libc::c_uint = 0x06d;
+pub static XK_n: libc::c_uint = 0x06e;
+pub static XK_o: libc::c_uint = 0x06f;
+pub static XK_p: libc::c_uint = 0x070;
+pub static XK_q: libc::c_uint = 0x071;
+pub static XK_r: libc::c_uint = 0x072;
+pub static XK_s: libc::c_uint = 0x073;
+pub static XK_t: libc::c_uint = 0x074;
+pub static XK_u: libc::c_uint = 0x075;
+pub static XK_v: libc::c_uint = 0x076;
+pub static XK_w: libc::c_uint = 0x077;
+pub static XK_x: libc::c_uint = 0x078;
+pub static XK_y: libc::c_uint = 0x079;
+pub static XK_z: libc::c_uint = 0x07a;
+pub static XK_braceleft: libc::c_uint = 0x07b;
+pub static XK_bar: libc::c_uint = 0x07c;
+pub static XK_braceright: libc::c_uint = 0x07d;
+pub static XK_asciitilde: libc::c_uint = 0x07e;
+pub static XK_nobreakspace: libc::c_uint = 0x0a0;
+pub static XK_exclamdown: libc::c_uint = 0x0a1;
+pub static XK_cent: libc::c_uint = 0x0a2;
+pub static XK_sterling: libc::c_uint = 0x0a3;
+pub static XK_currency: libc::c_uint = 0x0a4;
+pub static XK_yen: libc::c_uint = 0x0a5;
+pub static XK_brokenbar: libc::c_uint = 0x0a6;
+pub static XK_section: libc::c_uint = 0x0a7;
+pub static XK_diaeresis: libc::c_uint = 0x0a8;
+pub static XK_copyright: libc::c_uint = 0x0a9;
+pub static XK_ordfeminine: libc::c_uint = 0x0aa;
+pub static XK_guillemotleft: libc::c_uint = 0x0ab;
+pub static XK_notsign: libc::c_uint = 0x0ac;
+pub static XK_hyphen: libc::c_uint = 0x0ad;
+pub static XK_registered: libc::c_uint = 0x0ae;
+pub static XK_macron: libc::c_uint = 0x0af;
+pub static XK_degree: libc::c_uint = 0x0b0;
+pub static XK_plusminus: libc::c_uint = 0x0b1;
+pub static XK_twosuperior: libc::c_uint = 0x0b2;
+pub static XK_threesuperior: libc::c_uint = 0x0b3;
+pub static XK_acute: libc::c_uint = 0x0b4;
+pub static XK_mu: libc::c_uint = 0x0b5;
+pub static XK_paragraph: libc::c_uint = 0x0b6;
+pub static XK_periodcentered: libc::c_uint = 0x0b7;
+pub static XK_cedilla: libc::c_uint = 0x0b8;
+pub static XK_onesuperior: libc::c_uint = 0x0b9;
+pub static XK_masculine: libc::c_uint = 0x0ba;
+pub static XK_guillemotright: libc::c_uint = 0x0bb;
+pub static XK_onequarter: libc::c_uint = 0x0bc;
+pub static XK_onehalf: libc::c_uint = 0x0bd;
+pub static XK_threequarters: libc::c_uint = 0x0be;
+pub static XK_questiondown: libc::c_uint = 0x0bf;
+pub static XK_Agrave: libc::c_uint = 0x0c0;
+pub static XK_Aacute: libc::c_uint = 0x0c1;
+pub static XK_Acircumflex: libc::c_uint = 0x0c2;
+pub static XK_Atilde: libc::c_uint = 0x0c3;
+pub static XK_Adiaeresis: libc::c_uint = 0x0c4;
+pub static XK_Aring: libc::c_uint = 0x0c5;
+pub static XK_AE: libc::c_uint = 0x0c6;
+pub static XK_Ccedilla: libc::c_uint = 0x0c7;
+pub static XK_Egrave: libc::c_uint = 0x0c8;
+pub static XK_Eacute: libc::c_uint = 0x0c9;
+pub static XK_Ecircumflex: libc::c_uint = 0x0ca;
+pub static XK_Ediaeresis: libc::c_uint = 0x0cb;
+pub static XK_Igrave: libc::c_uint = 0x0cc;
+pub static XK_Iacute: libc::c_uint = 0x0cd;
+pub static XK_Icircumflex: libc::c_uint = 0x0ce;
+pub static XK_Idiaeresis: libc::c_uint = 0x0cf;
+pub static XK_ETH: libc::c_uint = 0x0d0;
+pub static XK_Eth: libc::c_uint = 0x0d0;
+pub static XK_Ntilde: libc::c_uint = 0x0d1;
+pub static XK_Ograve: libc::c_uint = 0x0d2;
+pub static XK_Oacute: libc::c_uint = 0x0d3;
+pub static XK_Ocircumflex: libc::c_uint = 0x0d4;
+pub static XK_Otilde: libc::c_uint = 0x0d5;
+pub static XK_Odiaeresis: libc::c_uint = 0x0d6;
+pub static XK_multiply: libc::c_uint = 0x0d7;
+pub static XK_Ooblique: libc::c_uint = 0x0d8;
+pub static XK_Ugrave: libc::c_uint = 0x0d9;
+pub static XK_Uacute: libc::c_uint = 0x0da;
+pub static XK_Ucircumflex: libc::c_uint = 0x0db;
+pub static XK_Udiaeresis: libc::c_uint = 0x0dc;
+pub static XK_Yacute: libc::c_uint = 0x0dd;
+pub static XK_THORN: libc::c_uint = 0x0de;
+pub static XK_Thorn: libc::c_uint = 0x0de;
+pub static XK_ssharp: libc::c_uint = 0x0df;
+pub static XK_agrave: libc::c_uint = 0x0e0;
+pub static XK_aacute: libc::c_uint = 0x0e1;
+pub static XK_acircumflex: libc::c_uint = 0x0e2;
+pub static XK_atilde: libc::c_uint = 0x0e3;
+pub static XK_adiaeresis: libc::c_uint = 0x0e4;
+pub static XK_aring: libc::c_uint = 0x0e5;
+pub static XK_ae: libc::c_uint = 0x0e6;
+pub static XK_ccedilla: libc::c_uint = 0x0e7;
+pub static XK_egrave: libc::c_uint = 0x0e8;
+pub static XK_eacute: libc::c_uint = 0x0e9;
+pub static XK_ecircumflex: libc::c_uint = 0x0ea;
+pub static XK_ediaeresis: libc::c_uint = 0x0eb;
+pub static XK_igrave: libc::c_uint = 0x0ec;
+pub static XK_iacute: libc::c_uint = 0x0ed;
+pub static XK_icircumflex: libc::c_uint = 0x0ee;
+pub static XK_idiaeresis: libc::c_uint = 0x0ef;
+pub static XK_eth: libc::c_uint = 0x0f0;
+pub static XK_ntilde: libc::c_uint = 0x0f1;
+pub static XK_ograve: libc::c_uint = 0x0f2;
+pub static XK_oacute: libc::c_uint = 0x0f3;
+pub static XK_ocircumflex: libc::c_uint = 0x0f4;
+pub static XK_otilde: libc::c_uint = 0x0f5;
+pub static XK_odiaeresis: libc::c_uint = 0x0f6;
+pub static XK_division: libc::c_uint = 0x0f7;
+pub static XK_oslash: libc::c_uint = 0x0f8;
+pub static XK_ugrave: libc::c_uint = 0x0f9;
+pub static XK_uacute: libc::c_uint = 0x0fa;
+pub static XK_ucircumflex: libc::c_uint = 0x0fb;
+pub static XK_udiaeresis: libc::c_uint = 0x0fc;
+pub static XK_yacute: libc::c_uint = 0x0fd;
+pub static XK_thorn: libc::c_uint = 0x0fe;
+pub static XK_ydiaeresis: libc::c_uint = 0x0ff;
+pub static XK_Aogonek: libc::c_uint = 0x1a1;
+pub static XK_breve: libc::c_uint = 0x1a2;
+pub static XK_Lstroke: libc::c_uint = 0x1a3;
+pub static XK_Lcaron: libc::c_uint = 0x1a5;
+pub static XK_Sacute: libc::c_uint = 0x1a6;
+pub static XK_Scaron: libc::c_uint = 0x1a9;
+pub static XK_Scedilla: libc::c_uint = 0x1aa;
+pub static XK_Tcaron: libc::c_uint = 0x1ab;
+pub static XK_Zacute: libc::c_uint = 0x1ac;
+pub static XK_Zcaron: libc::c_uint = 0x1ae;
+pub static XK_Zabovedot: libc::c_uint = 0x1af;
+pub static XK_aogonek: libc::c_uint = 0x1b1;
+pub static XK_ogonek: libc::c_uint = 0x1b2;
+pub static XK_lstroke: libc::c_uint = 0x1b3;
+pub static XK_lcaron: libc::c_uint = 0x1b5;
+pub static XK_sacute: libc::c_uint = 0x1b6;
+pub static XK_caron: libc::c_uint = 0x1b7;
+pub static XK_scaron: libc::c_uint = 0x1b9;
+pub static XK_scedilla: libc::c_uint = 0x1ba;
+pub static XK_tcaron: libc::c_uint = 0x1bb;
+pub static XK_zacute: libc::c_uint = 0x1bc;
+pub static XK_doubleacute: libc::c_uint = 0x1bd;
+pub static XK_zcaron: libc::c_uint = 0x1be;
+pub static XK_zabovedot: libc::c_uint = 0x1bf;
+pub static XK_Racute: libc::c_uint = 0x1c0;
+pub static XK_Abreve: libc::c_uint = 0x1c3;
+pub static XK_Lacute: libc::c_uint = 0x1c5;
+pub static XK_Cacute: libc::c_uint = 0x1c6;
+pub static XK_Ccaron: libc::c_uint = 0x1c8;
+pub static XK_Eogonek: libc::c_uint = 0x1ca;
+pub static XK_Ecaron: libc::c_uint = 0x1cc;
+pub static XK_Dcaron: libc::c_uint = 0x1cf;
+pub static XK_Dstroke: libc::c_uint = 0x1d0;
+pub static XK_Nacute: libc::c_uint = 0x1d1;
+pub static XK_Ncaron: libc::c_uint = 0x1d2;
+pub static XK_Odoubleacute: libc::c_uint = 0x1d5;
+pub static XK_Rcaron: libc::c_uint = 0x1d8;
+pub static XK_Uring: libc::c_uint = 0x1d9;
+pub static XK_Udoubleacute: libc::c_uint = 0x1db;
+pub static XK_Tcedilla: libc::c_uint = 0x1de;
+pub static XK_racute: libc::c_uint = 0x1e0;
+pub static XK_abreve: libc::c_uint = 0x1e3;
+pub static XK_lacute: libc::c_uint = 0x1e5;
+pub static XK_cacute: libc::c_uint = 0x1e6;
+pub static XK_ccaron: libc::c_uint = 0x1e8;
+pub static XK_eogonek: libc::c_uint = 0x1ea;
+pub static XK_ecaron: libc::c_uint = 0x1ec;
+pub static XK_dcaron: libc::c_uint = 0x1ef;
+pub static XK_dstroke: libc::c_uint = 0x1f0;
+pub static XK_nacute: libc::c_uint = 0x1f1;
+pub static XK_ncaron: libc::c_uint = 0x1f2;
+pub static XK_odoubleacute: libc::c_uint = 0x1f5;
+pub static XK_udoubleacute: libc::c_uint = 0x1fb;
+pub static XK_rcaron: libc::c_uint = 0x1f8;
+pub static XK_uring: libc::c_uint = 0x1f9;
+pub static XK_tcedilla: libc::c_uint = 0x1fe;
+pub static XK_abovedot: libc::c_uint = 0x1ff;
+pub static XK_Hstroke: libc::c_uint = 0x2a1;
+pub static XK_Hcircumflex: libc::c_uint = 0x2a6;
+pub static XK_Iabovedot: libc::c_uint = 0x2a9;
+pub static XK_Gbreve: libc::c_uint = 0x2ab;
+pub static XK_Jcircumflex: libc::c_uint = 0x2ac;
+pub static XK_hstroke: libc::c_uint = 0x2b1;
+pub static XK_hcircumflex: libc::c_uint = 0x2b6;
+pub static XK_idotless: libc::c_uint = 0x2b9;
+pub static XK_gbreve: libc::c_uint = 0x2bb;
+pub static XK_jcircumflex: libc::c_uint = 0x2bc;
+pub static XK_Cabovedot: libc::c_uint = 0x2c5;
+pub static XK_Ccircumflex: libc::c_uint = 0x2c6;
+pub static XK_Gabovedot: libc::c_uint = 0x2d5;
+pub static XK_Gcircumflex: libc::c_uint = 0x2d8;
+pub static XK_Ubreve: libc::c_uint = 0x2dd;
+pub static XK_Scircumflex: libc::c_uint = 0x2de;
+pub static XK_cabovedot: libc::c_uint = 0x2e5;
+pub static XK_ccircumflex: libc::c_uint = 0x2e6;
+pub static XK_gabovedot: libc::c_uint = 0x2f5;
+pub static XK_gcircumflex: libc::c_uint = 0x2f8;
+pub static XK_ubreve: libc::c_uint = 0x2fd;
+pub static XK_scircumflex: libc::c_uint = 0x2fe;
+pub static XK_kra: libc::c_uint = 0x3a2;
+pub static XK_kappa: libc::c_uint = 0x3a2;
+pub static XK_Rcedilla: libc::c_uint = 0x3a3;
+pub static XK_Itilde: libc::c_uint = 0x3a5;
+pub static XK_Lcedilla: libc::c_uint = 0x3a6;
+pub static XK_Emacron: libc::c_uint = 0x3aa;
+pub static XK_Gcedilla: libc::c_uint = 0x3ab;
+pub static XK_Tslash: libc::c_uint = 0x3ac;
+pub static XK_rcedilla: libc::c_uint = 0x3b3;
+pub static XK_itilde: libc::c_uint = 0x3b5;
+pub static XK_lcedilla: libc::c_uint = 0x3b6;
+pub static XK_emacron: libc::c_uint = 0x3ba;
+pub static XK_gcedilla: libc::c_uint = 0x3bb;
+pub static XK_tslash: libc::c_uint = 0x3bc;
+pub static XK_ENG: libc::c_uint = 0x3bd;
+pub static XK_eng: libc::c_uint = 0x3bf;
+pub static XK_Amacron: libc::c_uint = 0x3c0;
+pub static XK_Iogonek: libc::c_uint = 0x3c7;
+pub static XK_Eabovedot: libc::c_uint = 0x3cc;
+pub static XK_Imacron: libc::c_uint = 0x3cf;
+pub static XK_Ncedilla: libc::c_uint = 0x3d1;
+pub static XK_Omacron: libc::c_uint = 0x3d2;
+pub static XK_Kcedilla: libc::c_uint = 0x3d3;
+pub static XK_Uogonek: libc::c_uint = 0x3d9;
+pub static XK_Utilde: libc::c_uint = 0x3dd;
+pub static XK_Umacron: libc::c_uint = 0x3de;
+pub static XK_amacron: libc::c_uint = 0x3e0;
+pub static XK_iogonek: libc::c_uint = 0x3e7;
+pub static XK_eabovedot: libc::c_uint = 0x3ec;
+pub static XK_imacron: libc::c_uint = 0x3ef;
+pub static XK_ncedilla: libc::c_uint = 0x3f1;
+pub static XK_omacron: libc::c_uint = 0x3f2;
+pub static XK_kcedilla: libc::c_uint = 0x3f3;
+pub static XK_uogonek: libc::c_uint = 0x3f9;
+pub static XK_utilde: libc::c_uint = 0x3fd;
+pub static XK_umacron: libc::c_uint = 0x3fe;
+pub static XK_overline: libc::c_uint = 0x47e;
+pub static XK_kana_fullstop: libc::c_uint = 0x4a1;
+pub static XK_kana_openingbracket: libc::c_uint = 0x4a2;
+pub static XK_kana_closingbracket: libc::c_uint = 0x4a3;
+pub static XK_kana_comma: libc::c_uint = 0x4a4;
+pub static XK_kana_conjunctive: libc::c_uint = 0x4a5;
+pub static XK_kana_middledot: libc::c_uint = 0x4a5;
+pub static XK_kana_WO: libc::c_uint = 0x4a6;
+pub static XK_kana_a: libc::c_uint = 0x4a7;
+pub static XK_kana_i: libc::c_uint = 0x4a8;
+pub static XK_kana_u: libc::c_uint = 0x4a9;
+pub static XK_kana_e: libc::c_uint = 0x4aa;
+pub static XK_kana_o: libc::c_uint = 0x4ab;
+pub static XK_kana_ya: libc::c_uint = 0x4ac;
+pub static XK_kana_yu: libc::c_uint = 0x4ad;
+pub static XK_kana_yo: libc::c_uint = 0x4ae;
+pub static XK_kana_tsu: libc::c_uint = 0x4af;
+pub static XK_kana_tu: libc::c_uint = 0x4af;
+pub static XK_prolongedsound: libc::c_uint = 0x4b0;
+pub static XK_kana_A: libc::c_uint = 0x4b1;
+pub static XK_kana_I: libc::c_uint = 0x4b2;
+pub static XK_kana_U: libc::c_uint = 0x4b3;
+pub static XK_kana_E: libc::c_uint = 0x4b4;
+pub static XK_kana_O: libc::c_uint = 0x4b5;
+pub static XK_kana_KA: libc::c_uint = 0x4b6;
+pub static XK_kana_KI: libc::c_uint = 0x4b7;
+pub static XK_kana_KU: libc::c_uint = 0x4b8;
+pub static XK_kana_KE: libc::c_uint = 0x4b9;
+pub static XK_kana_KO: libc::c_uint = 0x4ba;
+pub static XK_kana_SA: libc::c_uint = 0x4bb;
+pub static XK_kana_SHI: libc::c_uint = 0x4bc;
+pub static XK_kana_SU: libc::c_uint = 0x4bd;
+pub static XK_kana_SE: libc::c_uint = 0x4be;
+pub static XK_kana_SO: libc::c_uint = 0x4bf;
+pub static XK_kana_TA: libc::c_uint = 0x4c0;
+pub static XK_kana_CHI: libc::c_uint = 0x4c1;
+pub static XK_kana_TI: libc::c_uint = 0x4c1;
+pub static XK_kana_TSU: libc::c_uint = 0x4c2;
+pub static XK_kana_TU: libc::c_uint = 0x4c2;
+pub static XK_kana_TE: libc::c_uint = 0x4c3;
+pub static XK_kana_TO: libc::c_uint = 0x4c4;
+pub static XK_kana_NA: libc::c_uint = 0x4c5;
+pub static XK_kana_NI: libc::c_uint = 0x4c6;
+pub static XK_kana_NU: libc::c_uint = 0x4c7;
+pub static XK_kana_NE: libc::c_uint = 0x4c8;
+pub static XK_kana_NO: libc::c_uint = 0x4c9;
+pub static XK_kana_HA: libc::c_uint = 0x4ca;
+pub static XK_kana_HI: libc::c_uint = 0x4cb;
+pub static XK_kana_FU: libc::c_uint = 0x4cc;
+pub static XK_kana_HU: libc::c_uint = 0x4cc;
+pub static XK_kana_HE: libc::c_uint = 0x4cd;
+pub static XK_kana_HO: libc::c_uint = 0x4ce;
+pub static XK_kana_MA: libc::c_uint = 0x4cf;
+pub static XK_kana_MI: libc::c_uint = 0x4d0;
+pub static XK_kana_MU: libc::c_uint = 0x4d1;
+pub static XK_kana_ME: libc::c_uint = 0x4d2;
+pub static XK_kana_MO: libc::c_uint = 0x4d3;
+pub static XK_kana_YA: libc::c_uint = 0x4d4;
+pub static XK_kana_YU: libc::c_uint = 0x4d5;
+pub static XK_kana_YO: libc::c_uint = 0x4d6;
+pub static XK_kana_RA: libc::c_uint = 0x4d7;
+pub static XK_kana_RI: libc::c_uint = 0x4d8;
+pub static XK_kana_RU: libc::c_uint = 0x4d9;
+pub static XK_kana_RE: libc::c_uint = 0x4da;
+pub static XK_kana_RO: libc::c_uint = 0x4db;
+pub static XK_kana_WA: libc::c_uint = 0x4dc;
+pub static XK_kana_N: libc::c_uint = 0x4dd;
+pub static XK_voicedsound: libc::c_uint = 0x4de;
+pub static XK_semivoicedsound: libc::c_uint = 0x4df;
+pub static XK_kana_switch: libc::c_uint = 0xFF7E;
+pub static XK_Arabic_comma: libc::c_uint = 0x5ac;
+pub static XK_Arabic_semicolon: libc::c_uint = 0x5bb;
+pub static XK_Arabic_question_mark: libc::c_uint = 0x5bf;
+pub static XK_Arabic_hamza: libc::c_uint = 0x5c1;
+pub static XK_Arabic_maddaonalef: libc::c_uint = 0x5c2;
+pub static XK_Arabic_hamzaonalef: libc::c_uint = 0x5c3;
+pub static XK_Arabic_hamzaonwaw: libc::c_uint = 0x5c4;
+pub static XK_Arabic_hamzaunderalef: libc::c_uint = 0x5c5;
+pub static XK_Arabic_hamzaonyeh: libc::c_uint = 0x5c6;
+pub static XK_Arabic_alef: libc::c_uint = 0x5c7;
+pub static XK_Arabic_beh: libc::c_uint = 0x5c8;
+pub static XK_Arabic_tehmarbuta: libc::c_uint = 0x5c9;
+pub static XK_Arabic_teh: libc::c_uint = 0x5ca;
+pub static XK_Arabic_theh: libc::c_uint = 0x5cb;
+pub static XK_Arabic_jeem: libc::c_uint = 0x5cc;
+pub static XK_Arabic_hah: libc::c_uint = 0x5cd;
+pub static XK_Arabic_khah: libc::c_uint = 0x5ce;
+pub static XK_Arabic_dal: libc::c_uint = 0x5cf;
+pub static XK_Arabic_thal: libc::c_uint = 0x5d0;
+pub static XK_Arabic_ra: libc::c_uint = 0x5d1;
+pub static XK_Arabic_zain: libc::c_uint = 0x5d2;
+pub static XK_Arabic_seen: libc::c_uint = 0x5d3;
+pub static XK_Arabic_sheen: libc::c_uint = 0x5d4;
+pub static XK_Arabic_sad: libc::c_uint = 0x5d5;
+pub static XK_Arabic_dad: libc::c_uint = 0x5d6;
+pub static XK_Arabic_tah: libc::c_uint = 0x5d7;
+pub static XK_Arabic_zah: libc::c_uint = 0x5d8;
+pub static XK_Arabic_ain: libc::c_uint = 0x5d9;
+pub static XK_Arabic_ghain: libc::c_uint = 0x5da;
+pub static XK_Arabic_tatweel: libc::c_uint = 0x5e0;
+pub static XK_Arabic_feh: libc::c_uint = 0x5e1;
+pub static XK_Arabic_qaf: libc::c_uint = 0x5e2;
+pub static XK_Arabic_kaf: libc::c_uint = 0x5e3;
+pub static XK_Arabic_lam: libc::c_uint = 0x5e4;
+pub static XK_Arabic_meem: libc::c_uint = 0x5e5;
+pub static XK_Arabic_noon: libc::c_uint = 0x5e6;
+pub static XK_Arabic_ha: libc::c_uint = 0x5e7;
+pub static XK_Arabic_heh: libc::c_uint = 0x5e7;
+pub static XK_Arabic_waw: libc::c_uint = 0x5e8;
+pub static XK_Arabic_alefmaksura: libc::c_uint = 0x5e9;
+pub static XK_Arabic_yeh: libc::c_uint = 0x5ea;
+pub static XK_Arabic_fathatan: libc::c_uint = 0x5eb;
+pub static XK_Arabic_dammatan: libc::c_uint = 0x5ec;
+pub static XK_Arabic_kasratan: libc::c_uint = 0x5ed;
+pub static XK_Arabic_fatha: libc::c_uint = 0x5ee;
+pub static XK_Arabic_damma: libc::c_uint = 0x5ef;
+pub static XK_Arabic_kasra: libc::c_uint = 0x5f0;
+pub static XK_Arabic_shadda: libc::c_uint = 0x5f1;
+pub static XK_Arabic_sukun: libc::c_uint = 0x5f2;
+pub static XK_Arabic_switch: libc::c_uint = 0xFF7E;
+pub static XK_Serbian_dje: libc::c_uint = 0x6a1;
+pub static XK_Macedonia_gje: libc::c_uint = 0x6a2;
+pub static XK_Cyrillic_io: libc::c_uint = 0x6a3;
+pub static XK_Ukrainian_ie: libc::c_uint = 0x6a4;
+pub static XK_Ukranian_je: libc::c_uint = 0x6a4;
+pub static XK_Macedonia_dse: libc::c_uint = 0x6a5;
+pub static XK_Ukrainian_i: libc::c_uint = 0x6a6;
+pub static XK_Ukranian_i: libc::c_uint = 0x6a6;
+pub static XK_Ukrainian_yi: libc::c_uint = 0x6a7;
+pub static XK_Ukranian_yi: libc::c_uint = 0x6a7;
+pub static XK_Cyrillic_je: libc::c_uint = 0x6a8;
+pub static XK_Serbian_je: libc::c_uint = 0x6a8;
+pub static XK_Cyrillic_lje: libc::c_uint = 0x6a9;
+pub static XK_Serbian_lje: libc::c_uint = 0x6a9;
+pub static XK_Cyrillic_nje: libc::c_uint = 0x6aa;
+pub static XK_Serbian_nje: libc::c_uint = 0x6aa;
+pub static XK_Serbian_tshe: libc::c_uint = 0x6ab;
+pub static XK_Macedonia_kje: libc::c_uint = 0x6ac;
+pub static XK_Byelorussian_shortu: libc::c_uint = 0x6ae;
+pub static XK_Cyrillic_dzhe: libc::c_uint = 0x6af;
+pub static XK_Serbian_dze: libc::c_uint = 0x6af;
+pub static XK_numerosign: libc::c_uint = 0x6b0;
+pub static XK_Serbian_DJE: libc::c_uint = 0x6b1;
+pub static XK_Macedonia_GJE: libc::c_uint = 0x6b2;
+pub static XK_Cyrillic_IO: libc::c_uint = 0x6b3;
+pub static XK_Ukrainian_IE: libc::c_uint = 0x6b4;
+pub static XK_Ukranian_JE: libc::c_uint = 0x6b4;
+pub static XK_Macedonia_DSE: libc::c_uint = 0x6b5;
+pub static XK_Ukrainian_I: libc::c_uint = 0x6b6;
+pub static XK_Ukranian_I: libc::c_uint = 0x6b6;
+pub static XK_Ukrainian_YI: libc::c_uint = 0x6b7;
+pub static XK_Ukranian_YI: libc::c_uint = 0x6b7;
+pub static XK_Cyrillic_JE: libc::c_uint = 0x6b8;
+pub static XK_Serbian_JE: libc::c_uint = 0x6b8;
+pub static XK_Cyrillic_LJE: libc::c_uint = 0x6b9;
+pub static XK_Serbian_LJE: libc::c_uint = 0x6b9;
+pub static XK_Cyrillic_NJE: libc::c_uint = 0x6ba;
+pub static XK_Serbian_NJE: libc::c_uint = 0x6ba;
+pub static XK_Serbian_TSHE: libc::c_uint = 0x6bb;
+pub static XK_Macedonia_KJE: libc::c_uint = 0x6bc;
+pub static XK_Byelorussian_SHORTU: libc::c_uint = 0x6be;
+pub static XK_Cyrillic_DZHE: libc::c_uint = 0x6bf;
+pub static XK_Serbian_DZE: libc::c_uint = 0x6bf;
+pub static XK_Cyrillic_yu: libc::c_uint = 0x6c0;
+pub static XK_Cyrillic_a: libc::c_uint = 0x6c1;
+pub static XK_Cyrillic_be: libc::c_uint = 0x6c2;
+pub static XK_Cyrillic_tse: libc::c_uint = 0x6c3;
+pub static XK_Cyrillic_de: libc::c_uint = 0x6c4;
+pub static XK_Cyrillic_ie: libc::c_uint = 0x6c5;
+pub static XK_Cyrillic_ef: libc::c_uint = 0x6c6;
+pub static XK_Cyrillic_ghe: libc::c_uint = 0x6c7;
+pub static XK_Cyrillic_ha: libc::c_uint = 0x6c8;
+pub static XK_Cyrillic_i: libc::c_uint = 0x6c9;
+pub static XK_Cyrillic_shorti: libc::c_uint = 0x6ca;
+pub static XK_Cyrillic_ka: libc::c_uint = 0x6cb;
+pub static XK_Cyrillic_el: libc::c_uint = 0x6cc;
+pub static XK_Cyrillic_em: libc::c_uint = 0x6cd;
+pub static XK_Cyrillic_en: libc::c_uint = 0x6ce;
+pub static XK_Cyrillic_o: libc::c_uint = 0x6cf;
+pub static XK_Cyrillic_pe: libc::c_uint = 0x6d0;
+pub static XK_Cyrillic_ya: libc::c_uint = 0x6d1;
+pub static XK_Cyrillic_er: libc::c_uint = 0x6d2;
+pub static XK_Cyrillic_es: libc::c_uint = 0x6d3;
+pub static XK_Cyrillic_te: libc::c_uint = 0x6d4;
+pub static XK_Cyrillic_u: libc::c_uint = 0x6d5;
+pub static XK_Cyrillic_zhe: libc::c_uint = 0x6d6;
+pub static XK_Cyrillic_ve: libc::c_uint = 0x6d7;
+pub static XK_Cyrillic_softsign: libc::c_uint = 0x6d8;
+pub static XK_Cyrillic_yeru: libc::c_uint = 0x6d9;
+pub static XK_Cyrillic_ze: libc::c_uint = 0x6da;
+pub static XK_Cyrillic_sha: libc::c_uint = 0x6db;
+pub static XK_Cyrillic_e: libc::c_uint = 0x6dc;
+pub static XK_Cyrillic_shcha: libc::c_uint = 0x6dd;
+pub static XK_Cyrillic_che: libc::c_uint = 0x6de;
+pub static XK_Cyrillic_hardsign: libc::c_uint = 0x6df;
+pub static XK_Cyrillic_YU: libc::c_uint = 0x6e0;
+pub static XK_Cyrillic_A: libc::c_uint = 0x6e1;
+pub static XK_Cyrillic_BE: libc::c_uint = 0x6e2;
+pub static XK_Cyrillic_TSE: libc::c_uint = 0x6e3;
+pub static XK_Cyrillic_DE: libc::c_uint = 0x6e4;
+pub static XK_Cyrillic_IE: libc::c_uint = 0x6e5;
+pub static XK_Cyrillic_EF: libc::c_uint = 0x6e6;
+pub static XK_Cyrillic_GHE: libc::c_uint = 0x6e7;
+pub static XK_Cyrillic_HA: libc::c_uint = 0x6e8;
+pub static XK_Cyrillic_I: libc::c_uint = 0x6e9;
+pub static XK_Cyrillic_SHORTI: libc::c_uint = 0x6ea;
+pub static XK_Cyrillic_KA: libc::c_uint = 0x6eb;
+pub static XK_Cyrillic_EL: libc::c_uint = 0x6ec;
+pub static XK_Cyrillic_EM: libc::c_uint = 0x6ed;
+pub static XK_Cyrillic_EN: libc::c_uint = 0x6ee;
+pub static XK_Cyrillic_O: libc::c_uint = 0x6ef;
+pub static XK_Cyrillic_PE: libc::c_uint = 0x6f0;
+pub static XK_Cyrillic_YA: libc::c_uint = 0x6f1;
+pub static XK_Cyrillic_ER: libc::c_uint = 0x6f2;
+pub static XK_Cyrillic_ES: libc::c_uint = 0x6f3;
+pub static XK_Cyrillic_TE: libc::c_uint = 0x6f4;
+pub static XK_Cyrillic_U: libc::c_uint = 0x6f5;
+pub static XK_Cyrillic_ZHE: libc::c_uint = 0x6f6;
+pub static XK_Cyrillic_VE: libc::c_uint = 0x6f7;
+pub static XK_Cyrillic_SOFTSIGN: libc::c_uint = 0x6f8;
+pub static XK_Cyrillic_YERU: libc::c_uint = 0x6f9;
+pub static XK_Cyrillic_ZE: libc::c_uint = 0x6fa;
+pub static XK_Cyrillic_SHA: libc::c_uint = 0x6fb;
+pub static XK_Cyrillic_E: libc::c_uint = 0x6fc;
+pub static XK_Cyrillic_SHCHA: libc::c_uint = 0x6fd;
+pub static XK_Cyrillic_CHE: libc::c_uint = 0x6fe;
+pub static XK_Cyrillic_HARDSIGN: libc::c_uint = 0x6ff;
+pub static XK_Greek_ALPHAaccent: libc::c_uint = 0x7a1;
+pub static XK_Greek_EPSILONaccent: libc::c_uint = 0x7a2;
+pub static XK_Greek_ETAaccent: libc::c_uint = 0x7a3;
+pub static XK_Greek_IOTAaccent: libc::c_uint = 0x7a4;
+pub static XK_Greek_IOTAdiaeresis: libc::c_uint = 0x7a5;
+pub static XK_Greek_OMICRONaccent: libc::c_uint = 0x7a7;
+pub static XK_Greek_UPSILONaccent: libc::c_uint = 0x7a8;
+pub static XK_Greek_UPSILONdieresis: libc::c_uint = 0x7a9;
+pub static XK_Greek_OMEGAaccent: libc::c_uint = 0x7ab;
+pub static XK_Greek_accentdieresis: libc::c_uint = 0x7ae;
+pub static XK_Greek_horizbar: libc::c_uint = 0x7af;
+pub static XK_Greek_alphaaccent: libc::c_uint = 0x7b1;
+pub static XK_Greek_epsilonaccent: libc::c_uint = 0x7b2;
+pub static XK_Greek_etaaccent: libc::c_uint = 0x7b3;
+pub static XK_Greek_iotaaccent: libc::c_uint = 0x7b4;
+pub static XK_Greek_iotadieresis: libc::c_uint = 0x7b5;
+pub static XK_Greek_iotaaccentdieresis: libc::c_uint = 0x7b6;
+pub static XK_Greek_omicronaccent: libc::c_uint = 0x7b7;
+pub static XK_Greek_upsilonaccent: libc::c_uint = 0x7b8;
+pub static XK_Greek_upsilondieresis: libc::c_uint = 0x7b9;
+pub static XK_Greek_upsilonaccentdieresis: libc::c_uint = 0x7ba;
+pub static XK_Greek_omegaaccent: libc::c_uint = 0x7bb;
+pub static XK_Greek_ALPHA: libc::c_uint = 0x7c1;
+pub static XK_Greek_BETA: libc::c_uint = 0x7c2;
+pub static XK_Greek_GAMMA: libc::c_uint = 0x7c3;
+pub static XK_Greek_DELTA: libc::c_uint = 0x7c4;
+pub static XK_Greek_EPSILON: libc::c_uint = 0x7c5;
+pub static XK_Greek_ZETA: libc::c_uint = 0x7c6;
+pub static XK_Greek_ETA: libc::c_uint = 0x7c7;
+pub static XK_Greek_THETA: libc::c_uint = 0x7c8;
+pub static XK_Greek_IOTA: libc::c_uint = 0x7c9;
+pub static XK_Greek_KAPPA: libc::c_uint = 0x7ca;
+pub static XK_Greek_LAMDA: libc::c_uint = 0x7cb;
+pub static XK_Greek_LAMBDA: libc::c_uint = 0x7cb;
+pub static XK_Greek_MU: libc::c_uint = 0x7cc;
+pub static XK_Greek_NU: libc::c_uint = 0x7cd;
+pub static XK_Greek_XI: libc::c_uint = 0x7ce;
+pub static XK_Greek_OMICRON: libc::c_uint = 0x7cf;
+pub static XK_Greek_PI: libc::c_uint = 0x7d0;
+pub static XK_Greek_RHO: libc::c_uint = 0x7d1;
+pub static XK_Greek_SIGMA: libc::c_uint = 0x7d2;
+pub static XK_Greek_TAU: libc::c_uint = 0x7d4;
+pub static XK_Greek_UPSILON: libc::c_uint = 0x7d5;
+pub static XK_Greek_PHI: libc::c_uint = 0x7d6;
+pub static XK_Greek_CHI: libc::c_uint = 0x7d7;
+pub static XK_Greek_PSI: libc::c_uint = 0x7d8;
+pub static XK_Greek_OMEGA: libc::c_uint = 0x7d9;
+pub static XK_Greek_alpha: libc::c_uint = 0x7e1;
+pub static XK_Greek_beta: libc::c_uint = 0x7e2;
+pub static XK_Greek_gamma: libc::c_uint = 0x7e3;
+pub static XK_Greek_delta: libc::c_uint = 0x7e4;
+pub static XK_Greek_epsilon: libc::c_uint = 0x7e5;
+pub static XK_Greek_zeta: libc::c_uint = 0x7e6;
+pub static XK_Greek_eta: libc::c_uint = 0x7e7;
+pub static XK_Greek_theta: libc::c_uint = 0x7e8;
+pub static XK_Greek_iota: libc::c_uint = 0x7e9;
+pub static XK_Greek_kappa: libc::c_uint = 0x7ea;
+pub static XK_Greek_lamda: libc::c_uint = 0x7eb;
+pub static XK_Greek_lambda: libc::c_uint = 0x7eb;
+pub static XK_Greek_mu: libc::c_uint = 0x7ec;
+pub static XK_Greek_nu: libc::c_uint = 0x7ed;
+pub static XK_Greek_xi: libc::c_uint = 0x7ee;
+pub static XK_Greek_omicron: libc::c_uint = 0x7ef;
+pub static XK_Greek_pi: libc::c_uint = 0x7f0;
+pub static XK_Greek_rho: libc::c_uint = 0x7f1;
+pub static XK_Greek_sigma: libc::c_uint = 0x7f2;
+pub static XK_Greek_finalsmallsigma: libc::c_uint = 0x7f3;
+pub static XK_Greek_tau: libc::c_uint = 0x7f4;
+pub static XK_Greek_upsilon: libc::c_uint = 0x7f5;
+pub static XK_Greek_phi: libc::c_uint = 0x7f6;
+pub static XK_Greek_chi: libc::c_uint = 0x7f7;
+pub static XK_Greek_psi: libc::c_uint = 0x7f8;
+pub static XK_Greek_omega: libc::c_uint = 0x7f9;
+pub static XK_Greek_switch: libc::c_uint = 0xFF7E;
+pub static XK_leftradical: libc::c_uint = 0x8a1;
+pub static XK_topleftradical: libc::c_uint = 0x8a2;
+pub static XK_horizconnector: libc::c_uint = 0x8a3;
+pub static XK_topintegral: libc::c_uint = 0x8a4;
+pub static XK_botintegral: libc::c_uint = 0x8a5;
+pub static XK_vertconnector: libc::c_uint = 0x8a6;
+pub static XK_topleftsqbracket: libc::c_uint = 0x8a7;
+pub static XK_botleftsqbracket: libc::c_uint = 0x8a8;
+pub static XK_toprightsqbracket: libc::c_uint = 0x8a9;
+pub static XK_botrightsqbracket: libc::c_uint = 0x8aa;
+pub static XK_topleftparens: libc::c_uint = 0x8ab;
+pub static XK_botleftparens: libc::c_uint = 0x8ac;
+pub static XK_toprightparens: libc::c_uint = 0x8ad;
+pub static XK_botrightparens: libc::c_uint = 0x8ae;
+pub static XK_leftmiddlecurlybrace: libc::c_uint = 0x8af;
+pub static XK_rightmiddlecurlybrace: libc::c_uint = 0x8b0;
+pub static XK_topleftsummation: libc::c_uint = 0x8b1;
+pub static XK_botleftsummation: libc::c_uint = 0x8b2;
+pub static XK_topvertsummationconnector: libc::c_uint = 0x8b3;
+pub static XK_botvertsummationconnector: libc::c_uint = 0x8b4;
+pub static XK_toprightsummation: libc::c_uint = 0x8b5;
+pub static XK_botrightsummation: libc::c_uint = 0x8b6;
+pub static XK_rightmiddlesummation: libc::c_uint = 0x8b7;
+pub static XK_lessthanequal: libc::c_uint = 0x8bc;
+pub static XK_notequal: libc::c_uint = 0x8bd;
+pub static XK_greaterthanequal: libc::c_uint = 0x8be;
+pub static XK_integral: libc::c_uint = 0x8bf;
+pub static XK_therefore: libc::c_uint = 0x8c0;
+pub static XK_variation: libc::c_uint = 0x8c1;
+pub static XK_infinity: libc::c_uint = 0x8c2;
+pub static XK_nabla: libc::c_uint = 0x8c5;
+pub static XK_approximate: libc::c_uint = 0x8c8;
+pub static XK_similarequal: libc::c_uint = 0x8c9;
+pub static XK_ifonlyif: libc::c_uint = 0x8cd;
+pub static XK_implies: libc::c_uint = 0x8ce;
+pub static XK_identical: libc::c_uint = 0x8cf;
+pub static XK_radical: libc::c_uint = 0x8d6;
+pub static XK_includedin: libc::c_uint = 0x8da;
+pub static XK_includes: libc::c_uint = 0x8db;
+pub static XK_intersection: libc::c_uint = 0x8dc;
+pub static XK_union: libc::c_uint = 0x8dd;
+pub static XK_logicaland: libc::c_uint = 0x8de;
+pub static XK_logicalor: libc::c_uint = 0x8df;
+pub static XK_partialderivative: libc::c_uint = 0x8ef;
+pub static XK_function: libc::c_uint = 0x8f6;
+pub static XK_leftarrow: libc::c_uint = 0x8fb;
+pub static XK_uparrow: libc::c_uint = 0x8fc;
+pub static XK_rightarrow: libc::c_uint = 0x8fd;
+pub static XK_downarrow: libc::c_uint = 0x8fe;
+pub static XK_blank: libc::c_uint = 0x9df;
+pub static XK_soliddiamond: libc::c_uint = 0x9e0;
+pub static XK_checkerboard: libc::c_uint = 0x9e1;
+pub static XK_ht: libc::c_uint = 0x9e2;
+pub static XK_ff: libc::c_uint = 0x9e3;
+pub static XK_cr: libc::c_uint = 0x9e4;
+pub static XK_lf: libc::c_uint = 0x9e5;
+pub static XK_nl: libc::c_uint = 0x9e8;
+pub static XK_vt: libc::c_uint = 0x9e9;
+pub static XK_lowrightcorner: libc::c_uint = 0x9ea;
+pub static XK_uprightcorner: libc::c_uint = 0x9eb;
+pub static XK_upleftcorner: libc::c_uint = 0x9ec;
+pub static XK_lowleftcorner: libc::c_uint = 0x9ed;
+pub static XK_crossinglines: libc::c_uint = 0x9ee;
+pub static XK_horizlinescan1: libc::c_uint = 0x9ef;
+pub static XK_horizlinescan3: libc::c_uint = 0x9f0;
+pub static XK_horizlinescan5: libc::c_uint = 0x9f1;
+pub static XK_horizlinescan7: libc::c_uint = 0x9f2;
+pub static XK_horizlinescan9: libc::c_uint = 0x9f3;
+pub static XK_leftt: libc::c_uint = 0x9f4;
+pub static XK_rightt: libc::c_uint = 0x9f5;
+pub static XK_bott: libc::c_uint = 0x9f6;
+pub static XK_topt: libc::c_uint = 0x9f7;
+pub static XK_vertbar: libc::c_uint = 0x9f8;
+pub static XK_emspace: libc::c_uint = 0xaa1;
+pub static XK_enspace: libc::c_uint = 0xaa2;
+pub static XK_em3space: libc::c_uint = 0xaa3;
+pub static XK_em4space: libc::c_uint = 0xaa4;
+pub static XK_digitspace: libc::c_uint = 0xaa5;
+pub static XK_punctspace: libc::c_uint = 0xaa6;
+pub static XK_thinspace: libc::c_uint = 0xaa7;
+pub static XK_hairspace: libc::c_uint = 0xaa8;
+pub static XK_emdash: libc::c_uint = 0xaa9;
+pub static XK_endash: libc::c_uint = 0xaaa;
+pub static XK_signifblank: libc::c_uint = 0xaac;
+pub static XK_ellipsis: libc::c_uint = 0xaae;
+pub static XK_doubbaselinedot: libc::c_uint = 0xaaf;
+pub static XK_onethird: libc::c_uint = 0xab0;
+pub static XK_twothirds: libc::c_uint = 0xab1;
+pub static XK_onefifth: libc::c_uint = 0xab2;
+pub static XK_twofifths: libc::c_uint = 0xab3;
+pub static XK_threefifths: libc::c_uint = 0xab4;
+pub static XK_fourfifths: libc::c_uint = 0xab5;
+pub static XK_onesixth: libc::c_uint = 0xab6;
+pub static XK_fivesixths: libc::c_uint = 0xab7;
+pub static XK_careof: libc::c_uint = 0xab8;
+pub static XK_figdash: libc::c_uint = 0xabb;
+pub static XK_leftanglebracket: libc::c_uint = 0xabc;
+pub static XK_decimalpoint: libc::c_uint = 0xabd;
+pub static XK_rightanglebracket: libc::c_uint = 0xabe;
+pub static XK_marker: libc::c_uint = 0xabf;
+pub static XK_oneeighth: libc::c_uint = 0xac3;
+pub static XK_threeeighths: libc::c_uint = 0xac4;
+pub static XK_fiveeighths: libc::c_uint = 0xac5;
+pub static XK_seveneighths: libc::c_uint = 0xac6;
+pub static XK_trademark: libc::c_uint = 0xac9;
+pub static XK_signaturemark: libc::c_uint = 0xaca;
+pub static XK_trademarkincircle: libc::c_uint = 0xacb;
+pub static XK_leftopentriangle: libc::c_uint = 0xacc;
+pub static XK_rightopentriangle: libc::c_uint = 0xacd;
+pub static XK_emopencircle: libc::c_uint = 0xace;
+pub static XK_emopenrectangle: libc::c_uint = 0xacf;
+pub static XK_leftsinglequotemark: libc::c_uint = 0xad0;
+pub static XK_rightsinglequotemark: libc::c_uint = 0xad1;
+pub static XK_leftdoublequotemark: libc::c_uint = 0xad2;
+pub static XK_rightdoublequotemark: libc::c_uint = 0xad3;
+pub static XK_prescription: libc::c_uint = 0xad4;
+pub static XK_minutes: libc::c_uint = 0xad6;
+pub static XK_seconds: libc::c_uint = 0xad7;
+pub static XK_latincross: libc::c_uint = 0xad9;
+pub static XK_hexagram: libc::c_uint = 0xada;
+pub static XK_filledrectbullet: libc::c_uint = 0xadb;
+pub static XK_filledlefttribullet: libc::c_uint = 0xadc;
+pub static XK_filledrighttribullet: libc::c_uint = 0xadd;
+pub static XK_emfilledcircle: libc::c_uint = 0xade;
+pub static XK_emfilledrect: libc::c_uint = 0xadf;
+pub static XK_enopencircbullet: libc::c_uint = 0xae0;
+pub static XK_enopensquarebullet: libc::c_uint = 0xae1;
+pub static XK_openrectbullet: libc::c_uint = 0xae2;
+pub static XK_opentribulletup: libc::c_uint = 0xae3;
+pub static XK_opentribulletdown: libc::c_uint = 0xae4;
+pub static XK_openstar: libc::c_uint = 0xae5;
+pub static XK_enfilledcircbullet: libc::c_uint = 0xae6;
+pub static XK_enfilledsqbullet: libc::c_uint = 0xae7;
+pub static XK_filledtribulletup: libc::c_uint = 0xae8;
+pub static XK_filledtribulletdown: libc::c_uint = 0xae9;
+pub static XK_leftpointer: libc::c_uint = 0xaea;
+pub static XK_rightpointer: libc::c_uint = 0xaeb;
+pub static XK_club: libc::c_uint = 0xaec;
+pub static XK_diamond: libc::c_uint = 0xaed;
+pub static XK_heart: libc::c_uint = 0xaee;
+pub static XK_maltesecross: libc::c_uint = 0xaf0;
+pub static XK_dagger: libc::c_uint = 0xaf1;
+pub static XK_doubledagger: libc::c_uint = 0xaf2;
+pub static XK_checkmark: libc::c_uint = 0xaf3;
+pub static XK_ballotcross: libc::c_uint = 0xaf4;
+pub static XK_musicalsharp: libc::c_uint = 0xaf5;
+pub static XK_musicalflat: libc::c_uint = 0xaf6;
+pub static XK_malesymbol: libc::c_uint = 0xaf7;
+pub static XK_femalesymbol: libc::c_uint = 0xaf8;
+pub static XK_telephone: libc::c_uint = 0xaf9;
+pub static XK_telephonerecorder: libc::c_uint = 0xafa;
+pub static XK_phonographcopyright: libc::c_uint = 0xafb;
+pub static XK_caret: libc::c_uint = 0xafc;
+pub static XK_singlelowquotemark: libc::c_uint = 0xafd;
+pub static XK_doublelowquotemark: libc::c_uint = 0xafe;
+pub static XK_cursor: libc::c_uint = 0xaff;
+pub static XK_leftcaret: libc::c_uint = 0xba3;
+pub static XK_rightcaret: libc::c_uint = 0xba6;
+pub static XK_downcaret: libc::c_uint = 0xba8;
+pub static XK_upcaret: libc::c_uint = 0xba9;
+pub static XK_overbar: libc::c_uint = 0xbc0;
+pub static XK_downtack: libc::c_uint = 0xbc2;
+pub static XK_upshoe: libc::c_uint = 0xbc3;
+pub static XK_downstile: libc::c_uint = 0xbc4;
+pub static XK_underbar: libc::c_uint = 0xbc6;
+pub static XK_jot: libc::c_uint = 0xbca;
+pub static XK_quad: libc::c_uint = 0xbcc;
+pub static XK_uptack: libc::c_uint = 0xbce;
+pub static XK_circle: libc::c_uint = 0xbcf;
+pub static XK_upstile: libc::c_uint = 0xbd3;
+pub static XK_downshoe: libc::c_uint = 0xbd6;
+pub static XK_rightshoe: libc::c_uint = 0xbd8;
+pub static XK_leftshoe: libc::c_uint = 0xbda;
+pub static XK_lefttack: libc::c_uint = 0xbdc;
+pub static XK_righttack: libc::c_uint = 0xbfc;
+pub static XK_hebrew_doublelowline: libc::c_uint = 0xcdf;
+pub static XK_hebrew_aleph: libc::c_uint = 0xce0;
+pub static XK_hebrew_bet: libc::c_uint = 0xce1;
+pub static XK_hebrew_beth: libc::c_uint = 0xce1;
+pub static XK_hebrew_gimel: libc::c_uint = 0xce2;
+pub static XK_hebrew_gimmel: libc::c_uint = 0xce2;
+pub static XK_hebrew_dalet: libc::c_uint = 0xce3;
+pub static XK_hebrew_daleth: libc::c_uint = 0xce3;
+pub static XK_hebrew_he: libc::c_uint = 0xce4;
+pub static XK_hebrew_waw: libc::c_uint = 0xce5;
+pub static XK_hebrew_zain: libc::c_uint = 0xce6;
+pub static XK_hebrew_zayin: libc::c_uint = 0xce6;
+pub static XK_hebrew_chet: libc::c_uint = 0xce7;
+pub static XK_hebrew_het: libc::c_uint = 0xce7;
+pub static XK_hebrew_tet: libc::c_uint = 0xce8;
+pub static XK_hebrew_teth: libc::c_uint = 0xce8;
+pub static XK_hebrew_yod: libc::c_uint = 0xce9;
+pub static XK_hebrew_finalkaph: libc::c_uint = 0xcea;
+pub static XK_hebrew_kaph: libc::c_uint = 0xceb;
+pub static XK_hebrew_lamed: libc::c_uint = 0xcec;
+pub static XK_hebrew_finalmem: libc::c_uint = 0xced;
+pub static XK_hebrew_mem: libc::c_uint = 0xcee;
+pub static XK_hebrew_finalnun: libc::c_uint = 0xcef;
+pub static XK_hebrew_nun: libc::c_uint = 0xcf0;
+pub static XK_hebrew_samech: libc::c_uint = 0xcf1;
+pub static XK_hebrew_samekh: libc::c_uint = 0xcf1;
+pub static XK_hebrew_ayin: libc::c_uint = 0xcf2;
+pub static XK_hebrew_finalpe: libc::c_uint = 0xcf3;
+pub static XK_hebrew_pe: libc::c_uint = 0xcf4;
+pub static XK_hebrew_finalzade: libc::c_uint = 0xcf5;
+pub static XK_hebrew_finalzadi: libc::c_uint = 0xcf5;
+pub static XK_hebrew_zade: libc::c_uint = 0xcf6;
+pub static XK_hebrew_zadi: libc::c_uint = 0xcf6;
+pub static XK_hebrew_qoph: libc::c_uint = 0xcf7;
+pub static XK_hebrew_kuf: libc::c_uint = 0xcf7;
+pub static XK_hebrew_resh: libc::c_uint = 0xcf8;
+pub static XK_hebrew_shin: libc::c_uint = 0xcf9;
+pub static XK_hebrew_taw: libc::c_uint = 0xcfa;
+pub static XK_hebrew_taf: libc::c_uint = 0xcfa;
+pub static XK_Hebrew_switch: libc::c_uint = 0xFF7E;
+
+
#[repr(C)]
pub struct XVisualInfo {
pub visual: *mut Visual,
@@ -272,6 +1269,44 @@ pub struct XMotionEvent {
pub same_screen: Bool,
}
+#[repr(C)]
+pub struct XKeyEvent {
+ pub type_: libc::c_int,
+ pub serial: libc::c_ulong,
+ pub send_event: Bool,
+ pub display: *mut Display,
+ pub window: Window,
+ pub root: Window,
+ pub subwindow: Window,
+ pub time: Time,
+ pub x: libc::c_int,
+ pub y: libc::c_int,
+ pub x_root: libc::c_int,
+ pub y_root: libc::c_int,
+ pub state: libc::c_uint,
+ pub keycode: libc::c_uint,
+ pub same_screen: Bool,
+}
+
+#[repr(C)]
+pub struct XButtonEvent {
+ pub type_: libc::c_int,
+ pub serial: libc::c_ulong,
+ pub send_event: Bool,
+ pub display: *mut Display,
+ pub window: Window,
+ pub root: Window,
+ pub subwindow: Window,
+ pub time: Time,
+ pub x: libc::c_int,
+ pub y: libc::c_int,
+ pub x_root: libc::c_int,
+ pub y_root: libc::c_int,
+ pub state: libc::c_uint,
+ pub button: libc::c_uint,
+ pub same_screen: Bool,
+}
+
#[link(name = "GL")]
#[link(name = "X11")]
extern "C" {
@@ -289,6 +1324,8 @@ extern "C" {
pub fn XFlush(display: *mut Display);
pub fn XInternAtom(display: *mut Display, atom_name: *const libc::c_char,
only_if_exists: Bool) -> Atom;
+ pub fn XKeycodeToKeysym(display: *mut Display, keycode: KeyCode,
+ index: libc::c_int) -> KeySym;
pub fn XMapWindow(display: *mut Display, w: Window);
pub fn XNextEvent(display: *mut Display, event_return: *mut XEvent);
pub fn XOpenDisplay(display_name: *const libc::c_char) -> *mut Display;