| 31 | { |
| 32 | |
| 33 | char32_t keysymToUnicode(KeySym keysym) |
| 34 | { |
| 35 | // clang-format off |
| 36 | switch (keysym) |
| 37 | { |
| 38 | case 0xff08: return 0x0008; // BackSpace |
| 39 | case 0xff89: return 0x0009; // KP_Tab |
| 40 | case 0xff09: return 0x0009; // Tab |
| 41 | case 0xff0a: return 0x000a; // Linefeed |
| 42 | case 0xff0b: return 0x000b; // Clear |
| 43 | case 0xff8d: return 0x000d; // KP_Enter |
| 44 | case 0xff0d: return 0x000d; // Return |
| 45 | case 0xff13: return 0x0013; // Pause |
| 46 | case 0xff14: return 0x0014; // Scroll_Lock |
| 47 | case 0xff15: return 0x0015; // Sys_Req |
| 48 | case 0xff1b: return 0x001b; // Escape |
| 49 | case 0xff80: return 0x0020; // KP_Space |
| 50 | case 0x0020: return 0x0020; // space |
| 51 | case 0x0021: return 0x0021; // exclam |
| 52 | case 0x0022: return 0x0022; // quotedbl |
| 53 | case 0x0023: return 0x0023; // numbersign |
| 54 | case 0x0024: return 0x0024; // dollar |
| 55 | case 0x0025: return 0x0025; // percent |
| 56 | case 0x0026: return 0x0026; // ampersand |
| 57 | case 0x0027: return 0x0027; // quoteright |
| 58 | case 0x14a5: return 0x0028; // Armenian_parenleft |
| 59 | case 0x0028: return 0x0028; // parenleft |
| 60 | case 0x14a4: return 0x0029; // Armenian_parenright |
| 61 | case 0x0029: return 0x0029; // parenright |
| 62 | case 0xffaa: return 0x002a; // KP_Multiply |
| 63 | case 0x002a: return 0x002a; // asterisk |
| 64 | case 0xffab: return 0x002b; // KP_Add |
| 65 | case 0x002b: return 0x002b; // plus |
| 66 | case 0x14ab: return 0x002c; // Armenian_comma |
| 67 | case 0xffac: return 0x002c; // KP_Separator |
| 68 | case 0x002c: return 0x002c; // comma |
| 69 | case 0xffad: return 0x002d; // KP_Subtract |
| 70 | case 0x002d: return 0x002d; // minus |
| 71 | case 0x14a9: return 0x002e; // Armenian_mijaket |
| 72 | case 0xffae: return 0x002e; // KP_Decimal |
| 73 | case 0x0abd: return 0x002e; // decimalpoint |
| 74 | case 0x002e: return 0x002e; // period |
| 75 | case 0xffaf: return 0x002f; // KP_Divide |
| 76 | case 0x002f: return 0x002f; // slash |
| 77 | case 0x0030: return 0x0030; // 0 |
| 78 | case 0xffb0: return 0x0030; // KP_0 |
| 79 | case 0x0031: return 0x0031; // 1 |
| 80 | case 0xffb1: return 0x0031; // KP_1 |
| 81 | case 0x0032: return 0x0032; // 2 |
| 82 | case 0xffb2: return 0x0032; // KP_2 |
| 83 | case 0x0033: return 0x0033; // 3 |
| 84 | case 0xffb3: return 0x0033; // KP_3 |
| 85 | case 0x0034: return 0x0034; // 4 |
| 86 | case 0xffb4: return 0x0034; // KP_4 |
| 87 | case 0x0035: return 0x0035; // 5 |
| 88 | case 0xffb5: return 0x0035; // KP_5 |
| 89 | case 0x0036: return 0x0036; // 6 |
| 90 | case 0xffb6: return 0x0036; // KP_6 |