1 2 #include "NativeWindowSystem.h" 3 4 #include <QKeySequence> 5 #include <QX11Info> 6 7 // XCB/X11 Includes 8 #define XK_MISCELLANY 9 #define XK_XKB_KEYS 10 #define XK_LATIN1 11 #define XK_LATIN2 12 #define XK_LATIN3 13 #define XK_LATIN4 14 #define XK_LATIN8 15 #define XK_LATIN9 16 //NOTE: Look at the keysymdef.h file for additional define/characters which we may need later 17 #include <X11/keysymdef.h> 18 #include <xcb/xcb_keysyms.h> 19 20 21 //Small simplification functions KeycodeToQt(int keycode)22Qt::Key NativeWindowSystem::KeycodeToQt(int keycode){ 23 static xcb_key_symbols_t *SYM = 0; 24 if(SYM==0){ SYM = xcb_key_symbols_alloc(QX11Info::connection()); } 25 xcb_keysym_t symbol = xcb_key_symbols_get_keysym(SYM, keycode,0); 26 //not sure about the "column" input - we want raw keys though so ignore the "modified" key states (columns) for now 27 //qDebug() << "Try to convert keycode to Qt::Key:" << keycode << symbol; 28 //Now map this symbol to the appropriate Qt::Key enumeration 29 switch(symbol){ 30 //FUNCTION KEYS 31 case XK_F1: return Qt::Key_F1; 32 case XK_F2: return Qt::Key_F2; 33 case XK_F3: return Qt::Key_F3; 34 case XK_F4: return Qt::Key_F4; 35 case XK_F5: return Qt::Key_F5; 36 case XK_F6: return Qt::Key_F6; 37 case XK_F7: return Qt::Key_F7; 38 case XK_F8: return Qt::Key_F8; 39 case XK_F9: return Qt::Key_F9; 40 case XK_F10: return Qt::Key_F10; 41 case XK_F11: return Qt::Key_F11; 42 case XK_F12: return Qt::Key_F12; 43 case XK_F13: return Qt::Key_F13; 44 case XK_F14: return Qt::Key_F14; 45 case XK_F15: return Qt::Key_F15; 46 case XK_F16: return Qt::Key_F16; 47 case XK_F17: return Qt::Key_F17; 48 case XK_F18: return Qt::Key_F18; 49 case XK_F19: return Qt::Key_F19; 50 case XK_F20: return Qt::Key_F20; 51 case XK_F21: return Qt::Key_F21; 52 case XK_F22: return Qt::Key_F22; 53 case XK_F23: return Qt::Key_F23; 54 case XK_F24: return Qt::Key_F24; 55 case XK_F25: return Qt::Key_F25; 56 case XK_F26: return Qt::Key_F26; 57 case XK_F27: return Qt::Key_F27; 58 case XK_F28: return Qt::Key_F28; 59 case XK_F29: return Qt::Key_F29; 60 case XK_F30: return Qt::Key_F30; 61 case XK_F31: return Qt::Key_F31; 62 case XK_F32: return Qt::Key_F32; 63 case XK_F33: return Qt::Key_F33; 64 case XK_F34: return Qt::Key_F34; 65 case XK_F35: return Qt::Key_F35; 66 //Miscellaneous Keys 67 case XK_BackSpace: return Qt::Key_Backspace; 68 case XK_Delete: return Qt::Key_Delete; 69 //case XK_LineFeed: return Qt::Key_Backspace; 70 case XK_Clear: return Qt::Key_Clear; 71 case XK_Return: return Qt::Key_Return; 72 case XK_Pause: return Qt::Key_Pause; 73 case XK_Scroll_Lock: return Qt::Key_ScrollLock; 74 case XK_Sys_Req: return Qt::Key_SysReq; 75 case XK_Escape: return Qt::Key_Escape; 76 case XK_Select: return Qt::Key_Select; 77 case XK_Print: return Qt::Key_Print; 78 //case XK_Execute: return Qt::Key_Execute; 79 case XK_Insert: return Qt::Key_Insert; 80 case XK_Undo: return Qt::Key_Undo; 81 case XK_Redo: return Qt::Key_Redo; 82 case XK_Menu: return Qt::Key_Menu; 83 case XK_Find: return Qt::Key_Find; 84 case XK_Cancel: return Qt::Key_Cancel; 85 case XK_Help: return Qt::Key_Help; 86 //case XK_Break: return Qt::Key_Break; 87 //case XK_Mode_switch: return Qt::Key_Backspace; 88 //case XK_script_switch: return Qt::Key_Backspace; 89 case XK_Num_Lock: return Qt::Key_NumLock; 90 //Cursor Controls 91 case XK_Home: return Qt::Key_Home; 92 case XK_Left: return Qt::Key_Left; 93 case XK_Up: return Qt::Key_Up; 94 case XK_Right: return Qt::Key_Right; 95 case XK_Down: return Qt::Key_Down; 96 //case XK_Prior: return Qt::Key_Backspace; 97 case XK_Page_Up: return Qt::Key_PageUp; 98 case XK_Page_Down: return Qt::Key_PageDown; 99 //case XK_Next: return Qt::Key_Backspace; 100 case XK_End: return Qt::Key_End; 101 //case XK_Begin: return Qt::Key_Backspace; 102 // Keypad Functions and numbers 103 case XK_KP_Space: return Qt::Key_Space; 104 case XK_KP_Tab: return Qt::Key_Tab; 105 case XK_KP_Enter: return Qt::Key_Enter; 106 case XK_KP_F1: return Qt::Key_F1; 107 case XK_KP_F2: return Qt::Key_F2; 108 case XK_KP_F3: return Qt::Key_F3; 109 case XK_KP_F4: return Qt::Key_F4; 110 case XK_KP_Home: return Qt::Key_Home; 111 case XK_KP_Left: return Qt::Key_Left; 112 case XK_KP_Up: return Qt::Key_Up; 113 case XK_KP_Right: return Qt::Key_Right; 114 case XK_KP_Down: return Qt::Key_Down; 115 //case XK_KP_Prior: return Qt::Key_ 116 case XK_KP_Page_Up: return Qt::Key_PageUp; 117 //case XK_KP_Next: return Qt::Key_ 118 case XK_KP_Page_Down: return Qt::Key_PageDown; 119 case XK_KP_End: return Qt::Key_End; 120 //case XK_KP_Begin: return Qt::Key_ 121 case XK_KP_Insert: return Qt::Key_Insert; 122 case XK_KP_Delete: return Qt::Key_Delete; 123 case XK_KP_Equal: return Qt::Key_Equal; 124 case XK_KP_Multiply: return Qt::Key_Asterisk; 125 case XK_KP_Add: return Qt::Key_Plus; 126 case XK_KP_Separator: return Qt::Key_Comma; //X11 definitions say this is often comma 127 case XK_KP_Subtract: return Qt::Key_Minus; 128 case XK_KP_Decimal: return Qt::Key_Period; 129 case XK_KP_Divide: return Qt::Key_Slash; 130 case XK_KP_0: return Qt::Key_0; 131 case XK_KP_1: return Qt::Key_1; 132 case XK_KP_2: return Qt::Key_2; 133 case XK_KP_3: return Qt::Key_3; 134 case XK_KP_4: return Qt::Key_4; 135 case XK_KP_5: return Qt::Key_5; 136 case XK_KP_6: return Qt::Key_6; 137 case XK_KP_7: return Qt::Key_7; 138 case XK_KP_8: return Qt::Key_8; 139 case XK_KP_9: return Qt::Key_9; 140 // Modifier Keys 141 case XK_Shift_L: return Qt::Key_Shift; 142 case XK_Shift_R: return Qt::Key_Shift; 143 case XK_Control_L: return Qt::Key_Control; 144 case XK_Control_R: return Qt::Key_Control; 145 case XK_Caps_Lock: return Qt::Key_CapsLock; 146 //case XK_Shift_Lock: return Qt::Key_ShiftLock; 147 case XK_Meta_L: return Qt::Key_Meta; 148 case XK_Meta_R: return Qt::Key_Meta; 149 case XK_Alt_L: return Qt::Key_Alt; 150 case XK_Alt_R: return Qt::Key_Alt; 151 case XK_Super_L: return Qt::Key_Super_L; 152 case XK_Super_R: return Qt::Key_Super_R; 153 case XK_Hyper_L: return Qt::Key_Hyper_L; 154 case XK_Hyper_R: return Qt::Key_Hyper_R; 155 case XK_space: return Qt::Key_Space; 156 case XK_exclam: return Qt::Key_Exclam; 157 case XK_quotedbl: return Qt::Key_QuoteDbl; 158 case XK_numbersign: return Qt::Key_NumberSign; 159 case XK_dollar: return Qt::Key_Dollar; 160 case XK_percent: return Qt::Key_Percent; 161 case XK_ampersand: return Qt::Key_Ampersand; 162 case XK_apostrophe: return Qt::Key_Apostrophe; 163 case XK_parenleft: return Qt::Key_ParenLeft; 164 case XK_parenright: return Qt::Key_ParenRight; 165 case XK_asterisk: return Qt::Key_Asterisk; 166 case XK_plus: return Qt::Key_Plus; 167 case XK_comma: return Qt::Key_Comma; 168 case XK_minus: return Qt::Key_Minus; 169 case XK_period: return Qt::Key_Period; 170 case XK_slash: return Qt::Key_Slash; 171 case XK_0: return Qt::Key_0; 172 case XK_1: return Qt::Key_1; 173 case XK_2: return Qt::Key_2; 174 case XK_3: return Qt::Key_3; 175 case XK_4: return Qt::Key_4; 176 case XK_5: return Qt::Key_5; 177 case XK_6: return Qt::Key_6; 178 case XK_7: return Qt::Key_7; 179 case XK_8: return Qt::Key_8; 180 case XK_9: return Qt::Key_9; 181 case XK_colon: return Qt::Key_Colon; 182 case XK_semicolon: return Qt::Key_Semicolon; 183 case XK_less: return Qt::Key_Less; 184 case XK_equal: return Qt::Key_Equal; 185 case XK_greater: return Qt::Key_Greater; 186 case XK_question: return Qt::Key_Question; 187 case XK_at: return Qt::Key_At; 188 case XK_A: return Qt::Key_A; 189 case XK_B: return Qt::Key_B; 190 case XK_C: return Qt::Key_C; 191 case XK_D: return Qt::Key_D; 192 case XK_E: return Qt::Key_E; 193 case XK_F: return Qt::Key_F; 194 case XK_G: return Qt::Key_G; 195 case XK_H: return Qt::Key_H; 196 case XK_I: return Qt::Key_I; 197 case XK_J: return Qt::Key_J; 198 case XK_K: return Qt::Key_K; 199 case XK_L: return Qt::Key_L; 200 case XK_M: return Qt::Key_M; 201 case XK_N: return Qt::Key_N; 202 case XK_O: return Qt::Key_O; 203 case XK_P: return Qt::Key_P; 204 case XK_Q: return Qt::Key_Q; 205 case XK_R: return Qt::Key_R; 206 case XK_S: return Qt::Key_S; 207 case XK_T: return Qt::Key_T; 208 case XK_U: return Qt::Key_U; 209 case XK_V: return Qt::Key_V; 210 case XK_W: return Qt::Key_W; 211 case XK_X: return Qt::Key_X; 212 case XK_Y : return Qt::Key_Y; 213 case XK_Z: return Qt::Key_Z; 214 case XK_bracketleft: return Qt::Key_BracketLeft; 215 case XK_backslash: return Qt::Key_Backslash; 216 case XK_bracketright: return Qt::Key_BracketRight; 217 case XK_asciicircum: return Qt::Key_AsciiCircum; 218 case XK_underscore: return Qt::Key_Underscore; 219 case XK_grave: return Qt::Key_Agrave; 220 case XK_a: return Qt::Key_A; 221 case XK_b: return Qt::Key_B; 222 case XK_c: return Qt::Key_C; 223 case XK_d: return Qt::Key_D; 224 case XK_e: return Qt::Key_E; 225 case XK_f : return Qt::Key_F; 226 case XK_g: return Qt::Key_G; 227 case XK_h: return Qt::Key_H; 228 case XK_i: return Qt::Key_I; 229 case XK_j: return Qt::Key_J; 230 case XK_k: return Qt::Key_K; 231 case XK_l: return Qt::Key_L; 232 case XK_m: return Qt::Key_M; 233 case XK_n: return Qt::Key_N; 234 case XK_o: return Qt::Key_O; 235 case XK_p: return Qt::Key_P; 236 case XK_q: return Qt::Key_Q; 237 case XK_r: return Qt::Key_R; 238 case XK_s: return Qt::Key_S; 239 case XK_t : return Qt::Key_T; 240 case XK_u: return Qt::Key_U; 241 case XK_v: return Qt::Key_V; 242 case XK_w: return Qt::Key_W; 243 case XK_x: return Qt::Key_X; 244 case XK_y: return Qt::Key_Y; 245 case XK_z: return Qt::Key_Z; 246 case XK_braceleft: return Qt::Key_BraceLeft; 247 case XK_bar: return Qt::Key_Bar; 248 case XK_braceright: return Qt::Key_BraceRight; 249 case XK_asciitilde: return Qt::Key_AsciiTilde; 250 251 case XK_nobreakspace: return Qt::Key_nobreakspace; 252 case XK_exclamdown: return Qt::Key_exclamdown; 253 case XK_cent: return Qt::Key_cent; 254 case XK_sterling: return Qt::Key_sterling; 255 case XK_currency: return Qt::Key_currency; 256 case XK_yen: return Qt::Key_yen; 257 case XK_brokenbar: return Qt::Key_brokenbar; 258 case XK_section: return Qt::Key_section; 259 case XK_diaeresis: return Qt::Key_diaeresis; 260 case XK_copyright: return Qt::Key_copyright; 261 case XK_ordfeminine: return Qt::Key_ordfeminine; 262 case XK_guillemotleft: return Qt::Key_guillemotleft; 263 case XK_notsign: return Qt::Key_notsign; 264 case XK_hyphen: return Qt::Key_hyphen; 265 case XK_registered: return Qt::Key_registered; 266 case XK_macron: return Qt::Key_macron; 267 case XK_degree: return Qt::Key_degree; 268 case XK_plusminus: return Qt::Key_plusminus; 269 case XK_twosuperior: return Qt::Key_twosuperior; 270 case XK_threesuperior: return Qt::Key_threesuperior; 271 case XK_acute: return Qt::Key_acute; 272 case XK_mu: return Qt::Key_mu; 273 case XK_paragraph: return Qt::Key_paragraph; 274 case XK_periodcentered: return Qt::Key_periodcentered; 275 case XK_cedilla: return Qt::Key_cedilla; 276 case XK_onesuperior: return Qt::Key_onesuperior; 277 case XK_masculine: return Qt::Key_masculine; 278 case XK_guillemotright: return Qt::Key_guillemotright; 279 case XK_onequarter: return Qt::Key_onequarter; 280 case XK_onehalf: return Qt::Key_onehalf; 281 case XK_threequarters: return Qt::Key_threequarters; 282 case XK_questiondown: return Qt::Key_questiondown; 283 case XK_Agrave: return Qt::Key_Agrave; 284 case XK_Aacute: return Qt::Key_Aacute; 285 case XK_Acircumflex: return Qt::Key_Acircumflex; 286 case XK_Atilde: return Qt::Key_Atilde; 287 case XK_Adiaeresis: return Qt::Key_Adiaeresis; 288 case XK_Aring: return Qt::Key_Aring; 289 case XK_AE: return Qt::Key_AE; 290 case XK_Ccedilla: return Qt::Key_Ccedilla; 291 case XK_Egrave: return Qt::Key_Egrave; 292 case XK_Eacute: return Qt::Key_Eacute; 293 case XK_Ecircumflex: return Qt::Key_Ecircumflex; 294 case XK_Ediaeresis: return Qt::Key_Ediaeresis; 295 case XK_Igrave: return Qt::Key_Igrave; 296 case XK_Iacute: return Qt::Key_Iacute; 297 case XK_Icircumflex: return Qt::Key_Icircumflex; 298 case XK_Idiaeresis: return Qt::Key_Idiaeresis; 299 case XK_ETH: return Qt::Key_ETH; 300 //case XK_Eth: return Qt::Key_Eth; 301 case XK_Ntilde: return Qt::Key_Ntilde; 302 case XK_Ograve: return Qt::Key_Ograve; 303 case XK_Oacute: return Qt::Key_Oacute; 304 case XK_Ocircumflex: return Qt::Key_Ocircumflex; 305 case XK_Otilde: return Qt::Key_Otilde; 306 case XK_Odiaeresis: return Qt::Key_Odiaeresis; 307 case XK_multiply: return Qt::Key_multiply; 308 //case XK_Oslash: return Qt::Key_AsciiTilde; 309 case XK_Ooblique: return Qt::Key_Ooblique; 310 case XK_Ugrave: return Qt::Key_Ugrave; 311 case XK_Uacute: return Qt::Key_Uacute; 312 case XK_Ucircumflex: return Qt::Key_Ucircumflex; 313 case XK_Udiaeresis: return Qt::Key_Udiaeresis; 314 case XK_Yacute: return Qt::Key_Yacute; 315 case XK_THORN: return Qt::Key_THORN; 316 //case XK_Thorn: return Qt::Key_AsciiTilde; 317 case XK_ssharp: return Qt::Key_ssharp; 318 /*case XK_agrave: return Qt::Key_AsciiTilde; 319 case XK_aacute: return Qt::Key_AsciiTilde; 320 case XK_acircumflex: return Qt::Key_AsciiTilde; 321 case XK_atilde: return Qt::Key_AsciiTilde; 322 case XK_adiaeresis: return Qt::Key_AsciiTilde; 323 case XK_aring: return Qt::Key_AsciiTilde; 324 case XK_ae: return Qt::Key_AsciiTilde; 325 case XK_ccedilla: return Qt::Key_AsciiTilde; 326 case XK_egrave: return Qt::Key_AsciiTilde; 327 case XK_eacute: return Qt::Key_AsciiTilde; 328 case XK_ecircumflex: return Qt::Key_AsciiTilde; 329 case XK_ediaeresis: return Qt::Key_AsciiTilde; 330 case XK_igrave: return Qt::Key_AsciiTilde; 331 case XK_iacute: return Qt::Key_AsciiTilde; 332 case XK_icircumflex: return Qt::Key_AsciiTilde; 333 case XK_idiaeresis: return Qt::Key_AsciiTilde; 334 case XK_eth: return Qt::Key_AsciiTilde; 335 case XK_ntilde: return Qt::Key_AsciiTilde; 336 case XK_ograve: return Qt::Key_AsciiTilde; 337 case XK_oacute: return Qt::Key_AsciiTilde; 338 case XK_ocircumflex: return Qt::Key_AsciiTilde; 339 case XK_otilde: return Qt::Key_AsciiTilde; 340 case XK_odiaeresis: return Qt::Key_AsciiTilde; 341 case XK_division: return Qt::Key_AsciiTilde; 342 case XK_oslash: return Qt::Key_AsciiTilde; 343 case XK_ooblique: return Qt::Key_AsciiTilde; 344 case XK_ugrave: return Qt::Key_AsciiTilde; 345 case XK_uacute: return Qt::Key_AsciiTilde; 346 case XK_ucircumflex: return Qt::Key_AsciiTilde; 347 case XK_udiaeresis: return Qt::Key_AsciiTilde; 348 case XK_yacute: return Qt::Key_AsciiTilde; 349 case XK_thorn: return Qt::Key_AsciiTilde; 350 case XK_ydiaeresis: return Qt::Key_AsciiTilde; 351 352 case: XK_Agonek: return Qt::Key_AsciiTilde; 353 case XK_breve: return Qt::Key_AsciiTilde; 354 case XK_Lstroke: return Qt::Key_AsciiTilde; 355 case XK_Lcaron: return Qt::Key_AsciiTilde; 356 case XK_Sacute: return Qt::Key_AsciiTilde; 357 case XK_Scaron: return Qt::Key_AsciiTilde; 358 case XK_Scedilla: return Qt::Key_AsciiTilde; 359 case XK_Tcaron: return Qt::Key_AsciiTilde; 360 case XK_Zacute: return Qt::Key_AsciiTilde; 361 case XK_Zcaron: return Qt::Key_AsciiTilde; 362 case XK_Zabovedot: return Qt::Key_AsciiTilde; 363 case XK_aogonek: return Qt::Key_AsciiTilde; 364 case XK_ogonek: return Qt::Key_AsciiTilde; 365 case XK_lstroke: return Qt::Key_AsciiTilde; 366 case XK_lcaron: return Qt::Key_AsciiTilde; 367 case XK_sacute: return Qt::Key_AsciiTilde; 368 case XK_caron: return Qt::Key_AsciiTilde; 369 case XK_scaron: return Qt::Key_AsciiTilde; 370 case XK_scedilla: return Qt::Key_AsciiTilde; 371 case XK_tcaron: return Qt::Key_AsciiTilde; 372 case XK_zacute: return Qt::Key_AsciiTilde; 373 case XK_doubleacute: return Qt::Key_AsciiTilde; 374 case XK_zcaron: return Qt::Key_AsciiTilde; 375 case XK_zabovedot: return Qt::Key_AsciiTilde; 376 case XK_Racute: return Qt::Key_AsciiTilde; 377 case XK_Abreve: return Qt::Key_AsciiTilde; 378 case XK_Lacute: return Qt::Key_AsciiTilde; 379 case XK_Cacute: return Qt::Key_AsciiTilde; 380 case XK_Ccaron: return Qt::Key_AsciiTilde; 381 case XK_Eogonek: return Qt::Key_AsciiTilde; 382 case XK_Ecaron: return Qt::Key_AsciiTilde; 383 case XK_Dcaron: return Qt::Key_AsciiTilde; 384 case XK_Dstroke: return Qt::Key_AsciiTilde; 385 case XK_Nacute: return Qt::Key_AsciiTilde; 386 case XK_Ncaron: return Qt::Key_AsciiTilde; 387 case XK_Odoubleacute: return Qt::Key_AsciiTilde; 388 case XK_Rcaron: return Qt::Key_AsciiTilde; 389 case XK_Uring: return Qt::Key_AsciiTilde; 390 case XK_Udoubleacute: return Qt::Key_AsciiTilde; 391 case XK_Tcedilla: return Qt::Key_AsciiTilde; 392 case XK_racute: return Qt::Key_AsciiTilde; 393 case XK_abreve: return Qt::Key_AsciiTilde; 394 case XK_lacute: return Qt::Key_AsciiTilde; 395 case XK_cacute: return Qt::Key_AsciiTilde; 396 case XK_ccaron: return Qt::Key_AsciiTilde; 397 case XK_eogonek: return Qt::Key_AsciiTilde; 398 case XK_ecaron: return Qt::Key_AsciiTilde; 399 case XK_dcaron: return Qt::Key_AsciiTilde; 400 case XK_dstroke: return Qt::Key_AsciiTilde; 401 case XK_nacute: return Qt::Key_AsciiTilde; 402 case XK_ncaron: return Qt::Key_AsciiTilde; 403 case XK_odoubleacute: return Qt::Key_AsciiTilde; 404 case XK_rcaron: return Qt::Key_AsciiTilde; 405 case XK_uring: return Qt::Key_AsciiTilde; 406 case XK_udoubleacute: return Qt::Key_AsciiTilde; 407 case XK_tcedilla: return Qt::Key_AsciiTilde; 408 case XK_abovedot: return Qt::Key_AsciiTilde; 409 case XK_Hstroke: return Qt::Key_AsciiTilde; 410 case XK_Hcircumflex: return Qt::Key_AsciiTilde; 411 case XK_Iabovedot: return Qt::Key_AsciiTilde; 412 case XK_Gbreve: return Qt::Key_AsciiTilde; 413 case XK_Jcircumflex: return Qt::Key_AsciiTilde; 414 case XK_hstroke: return Qt::Key_AsciiTilde; 415 case XK_hcircumflex: return Qt::Key_AsciiTilde; 416 case XK_idotless: return Qt::Key_AsciiTilde; 417 case XK_gbreve: return Qt::Key_AsciiTilde; 418 case XK_jcircumflex: return Qt::Key_AsciiTilde; 419 case XK_Cabovedot: return Qt::Key_AsciiTilde; 420 case XK_Ccircumflex: return Qt::Key_AsciiTilde; 421 case XK_Gabovedot: return Qt::Key_AsciiTilde; 422 case XK_Gcircumflex: return Qt::Key_AsciiTilde; 423 case XK_Ubreve: return Qt::Key_AsciiTilde; 424 case XK_Scircumflex: return Qt::Key_AsciiTilde; 425 case XK_cabovedot: return Qt::Key_AsciiTilde; 426 case XK_ccircumflex: return Qt::Key_AsciiTilde; 427 case XK_gabovedot: return Qt::Key_AsciiTilde; 428 case XK_gcircumflex: return Qt::Key_AsciiTilde; 429 case XK_ubreve: return Qt::Key_AsciiTilde; 430 case XK_scircumflex: return Qt::Key_AsciiTilde; 431 case XK_kra: return Qt::Key_AsciiTilde; 432 case XK_kappa: return Qt::Key_AsciiTilde; 433 case XK_Rcedilla: return Qt::Key_AsciiTilde; 434 case XK_Itilde: return Qt::Key_AsciiTilde; 435 case XK_Lcedilla: return Qt::Key_AsciiTilde; 436 case XK_Emacron: return Qt::Key_AsciiTilde; 437 case XK_Gcedilla: return Qt::Key_AsciiTilde; 438 case XK_Tslash: return Qt::Key_AsciiTilde; 439 case XK_rcedilla: return Qt::Key_AsciiTilde; 440 case XK_itilde: return Qt::Key_AsciiTilde; 441 case XK_lcedilla: return Qt::Key_AsciiTilde; 442 case XK_emacron: return Qt::Key_AsciiTilde; 443 case XK_gcedilla: return Qt::Key_AsciiTilde; 444 case XK_tslash: return Qt::Key_AsciiTilde; 445 case XK_ENG: return Qt::Key_AsciiTilde; 446 case XK_eng: return Qt::Key_AsciiTilde; 447 case XK_Amacron: return Qt::Key_AsciiTilde; 448 case XK_Iogonek: return Qt::Key_AsciiTilde; 449 case XK_Eabovedot: return Qt::Key_AsciiTilde; 450 case XK_Imacron: return Qt::Key_AsciiTilde; 451 case XK_Ncedilla: return Qt::Key_AsciiTilde; 452 case XK_Omacron: return Qt::Key_AsciiTilde; 453 case XK_Kcedilla: return Qt::Key_AsciiTilde; 454 case XK_Uogonek: return Qt::Key_AsciiTilde; 455 case XK_Utilde: return Qt::Key_AsciiTilde; 456 case XK_Umacron: return Qt::Key_AsciiTilde; 457 case XK_amacron: return Qt::Key_AsciiTilde; 458 case XK_iogonek: return Qt::Key_AsciiTilde; 459 case XK_eabovedot: return Qt::Key_AsciiTilde; 460 case XK_imacron: return Qt::Key_AsciiTilde; 461 case XK_ncedilla: return Qt::Key_AsciiTilde; 462 case XK_omacron: return Qt::Key_AsciiTilde; 463 case XK_kcedilla: return Qt::Key_AsciiTilde; 464 case XK_uogonek: return Qt::Key_AsciiTilde; 465 case XK_utilde: return Qt::Key_AsciiTilde; 466 case XK_umacron: return Qt::Key_AsciiTilde; 467 case XK_Wcircumflex: return Qt::Key_AsciiTilde; 468 case XK_wcircumflex: return Qt::Key_AsciiTilde; 469 case XK_Ycircumflex: return Qt::Key_AsciiTilde; 470 case XK_ycircumflex: return Qt::Key_AsciiTilde; 471 case XK_Babovedot: return Qt::Key_AsciiTilde; 472 case XK_babovedot: return Qt::Key_AsciiTilde; 473 case XK_Dabovedot: return Qt::Key_AsciiTilde; 474 case XK_dabovedot: return Qt::Key_AsciiTilde; 475 case XK_Fabovedot: return Qt::Key_AsciiTilde; 476 case XK_fabovedot: return Qt::Key_AsciiTilde; 477 case XK_Mabovedot: return Qt::Key_AsciiTilde; 478 case XK_mabovedot: return Qt::Key_AsciiTilde; 479 case XK_Pabovedot: return Qt::Key_AsciiTilde; 480 case XK_pabovedot: return Qt::Key_AsciiTilde; 481 case XK_Sabovedot: return Qt::Key_AsciiTilde; 482 case XK_sabovedot: return Qt::Key_AsciiTilde; 483 case XK_Tabovedot: return Qt::Key_AsciiTilde; 484 case XK_tabovedot: return Qt::Key_AsciiTilde; 485 case XK_Wgrave: return Qt::Key_AsciiTilde; 486 case XK_wgrave: return Qt::Key_AsciiTilde; 487 case XK_Wacute: return Qt::Key_AsciiTilde; 488 case XK_wacute: return Qt::Key_AsciiTilde; 489 case XK_Wdiaeresis: return Qt::Key_AsciiTilde; 490 case XK_wdiaeresis: return Qt::Key_AsciiTilde; 491 case XK_Ygrave: return Qt::Key_AsciiTilde; 492 case XK_ygrave: return Qt::Key_AsciiTilde; 493 case XK_OE: return Qt::Key_AsciiTilde; 494 case XK_oe: return Qt::Key_AsciiTilde; 495 case XK_Ydiaeresis: return Qt::Key_AsciiTilde;*/ 496 default: 497 qDebug() << "Unknown Key"; 498 } 499 qDebug() << " -- Simple Qt Map:" << (Qt::Key)(symbol); 500 qDebug() << " -- Key Sequence Map:" << QKeySequence(symbol); 501 qDebug() << " - Not implemented yet"; 502 return Qt::Key_unknown; 503 } 504 MouseToQt(int keycode)505NativeWindowSystem::MouseButton NativeWindowSystem::MouseToQt(int keycode){ 506 switch(keycode){ 507 case 1: 508 return NativeWindowSystem::LeftButton; 509 case 3: 510 return NativeWindowSystem::RightButton; 511 case 2: 512 return NativeWindowSystem::MidButton; 513 case 4: 514 return NativeWindowSystem::WheelUp; 515 case 5: 516 return NativeWindowSystem::WheelDown; 517 case 6: 518 return NativeWindowSystem::WheelLeft; 519 case 7: 520 return NativeWindowSystem::WheelRight; 521 case 8: 522 return NativeWindowSystem::BackButton; //Not sure if this is correct yet (1/27/17) 523 case 9: 524 return NativeWindowSystem::ForwardButton; //Not sure if this is correct yet (1/27/17) 525 default: 526 return NativeWindowSystem::NoButton; 527 } 528 } 529