Merge branch 'keyboard_improvement' of https://github.com/Luflosi/kitty
This commit is contained in:
commit
67f2ec2421
@ -34,6 +34,61 @@
|
||||
// Needed for _NSGetProgname
|
||||
#include <crt_externs.h>
|
||||
|
||||
|
||||
#define PARAGRAPH_UTF_8 0xc2a7 // §
|
||||
#define MASCULINE_UTF_8 0xc2ba // º
|
||||
#define A_DIAERESIS_UPPER_CASE_UTF_8 0xc384 // Ä
|
||||
#define O_DIAERESIS_UPPER_CASE_UTF_8 0xc396 // Ö
|
||||
#define U_DIAERESIS_UPPER_CASE_UTF_8 0xc39c // Ü
|
||||
#define S_SHARP_UTF_8 0xc39f // ß
|
||||
#define A_GRAVE_LOWER_CASE_UTF_8 0xc3a0 // à
|
||||
#define A_DIAERESIS_LOWER_CASE_UTF_8 0xc3a4 // ä
|
||||
#define A_RING_LOWER_CASE_UTF_8 0xc3a5 // å
|
||||
#define AE_LOWER_CASE_UTF_8 0xc3a6 // æ
|
||||
#define C_CEDILLA_LOWER_CASE_UTF_8 0xc3a7 // ç
|
||||
#define E_GRAVE_LOWER_CASE_UTF_8 0xc3a8 // è
|
||||
#define E_ACUTE_LOWER_CASE_UTF_8 0xc3a9 // é
|
||||
#define I_GRAVE_LOWER_CASE_UTF_8 0xc3ac // ì
|
||||
#define N_TILDE_LOWER_CASE_UTF_8 0xc3b1 // ñ
|
||||
#define O_GRAVE_LOWER_CASE_UTF_8 0xc3b2 // ò
|
||||
#define O_DIAERESIS_LOWER_CASE_UTF_8 0xc3b6 // ö
|
||||
#define O_SLASH_LOWER_CASE_UTF_8 0xc3b8 // ø
|
||||
#define U_GRAVE_LOWER_CASE_UTF_8 0xc3b9 // ù
|
||||
#define U_DIAERESIS_LOWER_CASE_UTF_8 0xc3bc // ü
|
||||
#define CYRILLIC_A_LOWER_CASE_UTF_8 0xd0b0 // а
|
||||
#define CYRILLIC_BE_LOWER_CASE_UTF_8 0xd0b1 // б
|
||||
#define CYRILLIC_VE_LOWER_CASE_UTF_8 0xd0b2 // в
|
||||
#define CYRILLIC_GHE_LOWER_CASE_UTF_8 0xd0b3 // г
|
||||
#define CYRILLIC_DE_LOWER_CASE_UTF_8 0xd0b4 // д
|
||||
#define CYRILLIC_IE_LOWER_CASE_UTF_8 0xd0b5 // е
|
||||
#define CYRILLIC_ZHE_LOWER_CASE_UTF_8 0xd0b6 // ж
|
||||
#define CYRILLIC_ZE_LOWER_CASE_UTF_8 0xd0b7 // з
|
||||
#define CYRILLIC_I_LOWER_CASE_UTF_8 0xd0b8 // и
|
||||
#define CYRILLIC_SHORT_I_LOWER_CASE_UTF_8 0xd0b9 // й
|
||||
#define CYRILLIC_KA_LOWER_CASE_UTF_8 0xd0ba // к
|
||||
#define CYRILLIC_EL_LOWER_CASE_UTF_8 0xd0bb // л
|
||||
#define CYRILLIC_EM_LOWER_CASE_UTF_8 0xd0bc // м
|
||||
#define CYRILLIC_EN_LOWER_CASE_UTF_8 0xd0bd // н
|
||||
#define CYRILLIC_O_LOWER_CASE_UTF_8 0xd0be // о
|
||||
#define CYRILLIC_PE_LOWER_CASE_UTF_8 0xd0bf // п
|
||||
#define CYRILLIC_ER_LOWER_CASE_UTF_8 0xd180 // р
|
||||
#define CYRILLIC_ES_LOWER_CASE_UTF_8 0xd181 // с
|
||||
#define CYRILLIC_TE_LOWER_CASE_UTF_8 0xd182 // т
|
||||
#define CYRILLIC_U_LOWER_CASE_UTF_8 0xd183 // у
|
||||
#define CYRILLIC_EF_LOWER_CASE_UTF_8 0xd184 // ф
|
||||
#define CYRILLIC_HA_LOWER_CASE_UTF_8 0xd185 // х
|
||||
#define CYRILLIC_TSE_LOWER_CASE_UTF_8 0xd186 // ц
|
||||
#define CYRILLIC_CHE_LOWER_CASE_UTF_8 0xd187 // ч
|
||||
#define CYRILLIC_SHA_LOWER_CASE_UTF_8 0xd188 // ш
|
||||
#define CYRILLIC_SHCHA_LOWER_CASE_UTF_8 0xd189 // щ
|
||||
#define CYRILLIC_HARD_SIGN_LOWER_CASE_UTF_8 0xd18a // ъ
|
||||
#define CYRILLIC_YERU_LOWER_CASE_UTF_8 0xd18b // ы
|
||||
#define CYRILLIC_SOFT_SIGN_LOWER_CASE_UTF_8 0xd18c // ь
|
||||
#define CYRILLIC_E_LOWER_CASE_UTF_8 0xd18d // э
|
||||
#define CYRILLIC_YU_LOWER_CASE_UTF_8 0xd18e // ю
|
||||
#define CYRILLIC_YA_LOWER_CASE_UTF_8 0xd18f // я
|
||||
#define CYRILLIC_IO_LOWER_CASE_UTF_8 0xd191 // ё
|
||||
|
||||
// Returns the style mask corresponding to the window settings
|
||||
//
|
||||
static NSUInteger getStyleMask(_GLFWwindow* window)
|
||||
@ -288,11 +343,45 @@ static int translateKey(unsigned int key, bool apply_keymap)
|
||||
{
|
||||
if (apply_keymap) {
|
||||
// Look for the effective key name after applying any keyboard layouts/mappings
|
||||
const char *name = _glfwPlatformGetScancodeName(key);
|
||||
if (name && name[1] == 0) {
|
||||
// Single letter key name
|
||||
switch(name[0]) {
|
||||
const char *name_chars = _glfwPlatformGetScancodeName(key);
|
||||
uint32_t name = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (!name_chars[i]) break;
|
||||
name <<= 8;
|
||||
name |= (uint8_t)name_chars[i];
|
||||
}
|
||||
if (name) {
|
||||
// Key name
|
||||
switch(name) {
|
||||
#define K(ch, name) case ch: return GLFW_KEY_##name
|
||||
K('!', EXCLAM);
|
||||
K('"', DOUBLE_QUOTE);
|
||||
K('#', NUMBER_SIGN);
|
||||
K('$', DOLLAR);
|
||||
K('&', AMPERSAND);
|
||||
K('\'', APOSTROPHE);
|
||||
K('(', PARENTHESIS_LEFT);
|
||||
K(')', PARENTHESIS_RIGHT);
|
||||
K('+', PLUS);
|
||||
K(',', COMMA);
|
||||
K('-', MINUS);
|
||||
K('.', PERIOD);
|
||||
K('/', SLASH);
|
||||
K('0', 0);
|
||||
K('1', 1);
|
||||
K('2', 2);
|
||||
K('3', 3);
|
||||
K('5', 5);
|
||||
K('6', 6);
|
||||
K('7', 7);
|
||||
K('8', 8);
|
||||
K('9', 9);
|
||||
K(':', COLON);
|
||||
K(';', SEMICOLON);
|
||||
K('<', LESS);
|
||||
K('=', EQUAL);
|
||||
K('>', GREATER);
|
||||
K('@', AT);
|
||||
K('A', A); K('a', A);
|
||||
K('B', B); K('b', B);
|
||||
K('C', C); K('c', C);
|
||||
@ -319,28 +408,64 @@ static int translateKey(unsigned int key, bool apply_keymap)
|
||||
K('X', X); K('x', X);
|
||||
K('Y', Y); K('y', Y);
|
||||
K('Z', Z); K('z', Z);
|
||||
K('0', 0);
|
||||
K('1', 1);
|
||||
K('2', 2);
|
||||
K('3', 3);
|
||||
K('5', 5);
|
||||
K('6', 6);
|
||||
K('7', 7);
|
||||
K('8', 8);
|
||||
K('9', 9);
|
||||
K('\'', APOSTROPHE);
|
||||
K(',', COMMA);
|
||||
K('.', PERIOD);
|
||||
K('/', SLASH);
|
||||
K('-', MINUS);
|
||||
K('=', EQUAL);
|
||||
K(';', SEMICOLON);
|
||||
K('[', LEFT_BRACKET);
|
||||
K('\\', BACKSLASH);
|
||||
K(']', RIGHT_BRACKET);
|
||||
K('+', PLUS);
|
||||
K('_', UNDERSCORE);
|
||||
K('`', GRAVE_ACCENT);
|
||||
K('\\', BACKSLASH);
|
||||
K(PARAGRAPH_UTF_8, PARAGRAPH);
|
||||
K(MASCULINE_UTF_8, MASCULINE);
|
||||
K(A_DIAERESIS_UPPER_CASE_UTF_8, A_DIAERESIS);
|
||||
K(O_DIAERESIS_UPPER_CASE_UTF_8, O_DIAERESIS);
|
||||
K(U_DIAERESIS_UPPER_CASE_UTF_8, U_DIAERESIS);
|
||||
K(S_SHARP_UTF_8, S_SHARP);
|
||||
K(A_GRAVE_LOWER_CASE_UTF_8, A_GRAVE);
|
||||
K(A_DIAERESIS_LOWER_CASE_UTF_8, A_DIAERESIS);
|
||||
K(A_RING_LOWER_CASE_UTF_8, A_RING);
|
||||
K(AE_LOWER_CASE_UTF_8, AE);
|
||||
K(C_CEDILLA_LOWER_CASE_UTF_8, C_CEDILLA);
|
||||
K(E_GRAVE_LOWER_CASE_UTF_8, E_GRAVE);
|
||||
K(E_ACUTE_LOWER_CASE_UTF_8, E_ACUTE);
|
||||
K(I_GRAVE_LOWER_CASE_UTF_8, I_GRAVE);
|
||||
K(N_TILDE_LOWER_CASE_UTF_8, N_TILDE);
|
||||
K(O_GRAVE_LOWER_CASE_UTF_8, O_GRAVE);
|
||||
K(O_DIAERESIS_LOWER_CASE_UTF_8, O_DIAERESIS);
|
||||
K(O_SLASH_LOWER_CASE_UTF_8, O_SLASH);
|
||||
K(U_GRAVE_LOWER_CASE_UTF_8, U_GRAVE);
|
||||
K(U_DIAERESIS_LOWER_CASE_UTF_8, U_DIAERESIS);
|
||||
K(CYRILLIC_A_LOWER_CASE_UTF_8, CYRILLIC_A);
|
||||
K(CYRILLIC_BE_LOWER_CASE_UTF_8, CYRILLIC_BE);
|
||||
K(CYRILLIC_VE_LOWER_CASE_UTF_8, CYRILLIC_VE);
|
||||
K(CYRILLIC_GHE_LOWER_CASE_UTF_8, CYRILLIC_GHE);
|
||||
K(CYRILLIC_DE_LOWER_CASE_UTF_8, CYRILLIC_DE);
|
||||
K(CYRILLIC_IE_LOWER_CASE_UTF_8, CYRILLIC_IE);
|
||||
K(CYRILLIC_ZHE_LOWER_CASE_UTF_8, CYRILLIC_ZHE);
|
||||
K(CYRILLIC_ZE_LOWER_CASE_UTF_8, CYRILLIC_ZE);
|
||||
K(CYRILLIC_I_LOWER_CASE_UTF_8, CYRILLIC_I);
|
||||
K(CYRILLIC_SHORT_I_LOWER_CASE_UTF_8, CYRILLIC_SHORT_I);
|
||||
K(CYRILLIC_KA_LOWER_CASE_UTF_8, CYRILLIC_KA);
|
||||
K(CYRILLIC_EL_LOWER_CASE_UTF_8, CYRILLIC_EL);
|
||||
K(CYRILLIC_EM_LOWER_CASE_UTF_8, CYRILLIC_EM);
|
||||
K(CYRILLIC_EN_LOWER_CASE_UTF_8, CYRILLIC_EN);
|
||||
K(CYRILLIC_O_LOWER_CASE_UTF_8, CYRILLIC_O);
|
||||
K(CYRILLIC_PE_LOWER_CASE_UTF_8, CYRILLIC_PE);
|
||||
K(CYRILLIC_ER_LOWER_CASE_UTF_8, CYRILLIC_ER);
|
||||
K(CYRILLIC_ES_LOWER_CASE_UTF_8, CYRILLIC_ES);
|
||||
K(CYRILLIC_TE_LOWER_CASE_UTF_8, CYRILLIC_TE);
|
||||
K(CYRILLIC_U_LOWER_CASE_UTF_8, CYRILLIC_U);
|
||||
K(CYRILLIC_EF_LOWER_CASE_UTF_8, CYRILLIC_EF);
|
||||
K(CYRILLIC_HA_LOWER_CASE_UTF_8, CYRILLIC_HA);
|
||||
K(CYRILLIC_TSE_LOWER_CASE_UTF_8, CYRILLIC_TSE);
|
||||
K(CYRILLIC_CHE_LOWER_CASE_UTF_8, CYRILLIC_CHE);
|
||||
K(CYRILLIC_SHA_LOWER_CASE_UTF_8, CYRILLIC_SHA);
|
||||
K(CYRILLIC_SHCHA_LOWER_CASE_UTF_8, CYRILLIC_SHCHA);
|
||||
K(CYRILLIC_HARD_SIGN_LOWER_CASE_UTF_8, CYRILLIC_HARD_SIGN);
|
||||
K(CYRILLIC_YERU_LOWER_CASE_UTF_8, CYRILLIC_YERU);
|
||||
K(CYRILLIC_SOFT_SIGN_LOWER_CASE_UTF_8, CYRILLIC_SOFT_SIGN);
|
||||
K(CYRILLIC_E_LOWER_CASE_UTF_8, CYRILLIC_E);
|
||||
K(CYRILLIC_YU_LOWER_CASE_UTF_8, CYRILLIC_YU);
|
||||
K(CYRILLIC_YA_LOWER_CASE_UTF_8, CYRILLIC_YA);
|
||||
K(CYRILLIC_IO_LOWER_CASE_UTF_8, CYRILLIC_IO);
|
||||
#undef K
|
||||
default:
|
||||
break;
|
||||
@ -2290,6 +2415,39 @@ GLFWAPI void glfwGetCocoaKeyEquivalent(int glfw_key, int glfw_mods, unsigned sho
|
||||
START_ALLOW_CASE_RANGE
|
||||
switch(glfw_key) {
|
||||
#define K(ch, name) case GLFW_KEY_##name: *cocoa_key = ch; break;
|
||||
K('!', EXCLAM);
|
||||
K('"', DOUBLE_QUOTE);
|
||||
K('#', NUMBER_SIGN);
|
||||
K('$', DOLLAR);
|
||||
K('&', AMPERSAND);
|
||||
K('\'', APOSTROPHE);
|
||||
K('(', PARENTHESIS_LEFT);
|
||||
K(')', PARENTHESIS_RIGHT);
|
||||
K('+', PLUS);
|
||||
K(',', COMMA);
|
||||
K('-', MINUS);
|
||||
K('.', PERIOD);
|
||||
K('/', SLASH);
|
||||
K('0', 0);
|
||||
K('1', 1);
|
||||
K('2', 2);
|
||||
K('3', 3);
|
||||
K('5', 5);
|
||||
K('6', 6);
|
||||
K('7', 7);
|
||||
K('8', 8);
|
||||
K('9', 9);
|
||||
K(':', COLON);
|
||||
K(';', SEMICOLON);
|
||||
K('<', LESS);
|
||||
K('=', EQUAL);
|
||||
K('>', GREATER);
|
||||
K('@', AT);
|
||||
K('[', LEFT_BRACKET);
|
||||
K('\\', BACKSLASH);
|
||||
K(']', RIGHT_BRACKET);
|
||||
K('_', UNDERSCORE);
|
||||
K('`', GRAVE_ACCENT);
|
||||
K('a', A);
|
||||
K('b', B);
|
||||
K('c', C);
|
||||
@ -2316,28 +2474,56 @@ START_ALLOW_CASE_RANGE
|
||||
K('x', X);
|
||||
K('y', Y);
|
||||
K('z', Z);
|
||||
K('0', 0);
|
||||
K('1', 1);
|
||||
K('2', 2);
|
||||
K('3', 3);
|
||||
K('5', 5);
|
||||
K('6', 6);
|
||||
K('7', 7);
|
||||
K('8', 8);
|
||||
K('9', 9);
|
||||
K('\'', APOSTROPHE);
|
||||
K(',', COMMA);
|
||||
K('.', PERIOD);
|
||||
K('/', SLASH);
|
||||
K('-', MINUS);
|
||||
K('=', EQUAL);
|
||||
K(';', SEMICOLON);
|
||||
K('[', LEFT_BRACKET);
|
||||
K(']', RIGHT_BRACKET);
|
||||
K('+', PLUS);
|
||||
K('_', UNDERSCORE);
|
||||
K('`', GRAVE_ACCENT);
|
||||
K('\\', BACKSLASH);
|
||||
K(PARAGRAPH_UTF_8, PARAGRAPH);
|
||||
K(MASCULINE_UTF_8, MASCULINE);
|
||||
K(S_SHARP_UTF_8, S_SHARP);
|
||||
K(A_GRAVE_LOWER_CASE_UTF_8, A_GRAVE);
|
||||
K(A_DIAERESIS_LOWER_CASE_UTF_8, A_DIAERESIS);
|
||||
K(A_RING_LOWER_CASE_UTF_8, A_RING);
|
||||
K(AE_LOWER_CASE_UTF_8, AE);
|
||||
K(C_CEDILLA_LOWER_CASE_UTF_8, C_CEDILLA);
|
||||
K(E_GRAVE_LOWER_CASE_UTF_8, E_GRAVE);
|
||||
K(E_ACUTE_LOWER_CASE_UTF_8, E_ACUTE);
|
||||
K(I_GRAVE_LOWER_CASE_UTF_8, I_GRAVE);
|
||||
K(N_TILDE_LOWER_CASE_UTF_8, N_TILDE);
|
||||
K(O_GRAVE_LOWER_CASE_UTF_8, O_GRAVE);
|
||||
K(O_DIAERESIS_LOWER_CASE_UTF_8, O_DIAERESIS);
|
||||
K(O_SLASH_LOWER_CASE_UTF_8, O_SLASH);
|
||||
K(U_GRAVE_LOWER_CASE_UTF_8, U_GRAVE);
|
||||
K(U_DIAERESIS_LOWER_CASE_UTF_8, U_DIAERESIS);
|
||||
K(CYRILLIC_A_LOWER_CASE_UTF_8, CYRILLIC_A);
|
||||
K(CYRILLIC_BE_LOWER_CASE_UTF_8, CYRILLIC_BE);
|
||||
K(CYRILLIC_VE_LOWER_CASE_UTF_8, CYRILLIC_VE);
|
||||
K(CYRILLIC_GHE_LOWER_CASE_UTF_8, CYRILLIC_GHE);
|
||||
K(CYRILLIC_DE_LOWER_CASE_UTF_8, CYRILLIC_DE);
|
||||
K(CYRILLIC_IE_LOWER_CASE_UTF_8, CYRILLIC_IE);
|
||||
K(CYRILLIC_ZHE_LOWER_CASE_UTF_8, CYRILLIC_ZHE);
|
||||
K(CYRILLIC_ZE_LOWER_CASE_UTF_8, CYRILLIC_ZE);
|
||||
K(CYRILLIC_I_LOWER_CASE_UTF_8, CYRILLIC_I);
|
||||
K(CYRILLIC_SHORT_I_LOWER_CASE_UTF_8, CYRILLIC_SHORT_I);
|
||||
K(CYRILLIC_KA_LOWER_CASE_UTF_8, CYRILLIC_KA);
|
||||
K(CYRILLIC_EL_LOWER_CASE_UTF_8, CYRILLIC_EL);
|
||||
K(CYRILLIC_EM_LOWER_CASE_UTF_8, CYRILLIC_EM);
|
||||
K(CYRILLIC_EN_LOWER_CASE_UTF_8, CYRILLIC_EN);
|
||||
K(CYRILLIC_O_LOWER_CASE_UTF_8, CYRILLIC_O);
|
||||
K(CYRILLIC_PE_LOWER_CASE_UTF_8, CYRILLIC_PE);
|
||||
K(CYRILLIC_ER_LOWER_CASE_UTF_8, CYRILLIC_ER);
|
||||
K(CYRILLIC_ES_LOWER_CASE_UTF_8, CYRILLIC_ES);
|
||||
K(CYRILLIC_TE_LOWER_CASE_UTF_8, CYRILLIC_TE);
|
||||
K(CYRILLIC_U_LOWER_CASE_UTF_8, CYRILLIC_U);
|
||||
K(CYRILLIC_EF_LOWER_CASE_UTF_8, CYRILLIC_EF);
|
||||
K(CYRILLIC_HA_LOWER_CASE_UTF_8, CYRILLIC_HA);
|
||||
K(CYRILLIC_TSE_LOWER_CASE_UTF_8, CYRILLIC_TSE);
|
||||
K(CYRILLIC_CHE_LOWER_CASE_UTF_8, CYRILLIC_CHE);
|
||||
K(CYRILLIC_SHA_LOWER_CASE_UTF_8, CYRILLIC_SHA);
|
||||
K(CYRILLIC_SHCHA_LOWER_CASE_UTF_8, CYRILLIC_SHCHA);
|
||||
K(CYRILLIC_HARD_SIGN_LOWER_CASE_UTF_8, CYRILLIC_HARD_SIGN);
|
||||
K(CYRILLIC_YERU_LOWER_CASE_UTF_8, CYRILLIC_YERU);
|
||||
K(CYRILLIC_SOFT_SIGN_LOWER_CASE_UTF_8, CYRILLIC_SOFT_SIGN);
|
||||
K(CYRILLIC_E_LOWER_CASE_UTF_8, CYRILLIC_E);
|
||||
K(CYRILLIC_YU_LOWER_CASE_UTF_8, CYRILLIC_YU);
|
||||
K(CYRILLIC_YA_LOWER_CASE_UTF_8, CYRILLIC_YA);
|
||||
K(CYRILLIC_IO_LOWER_CASE_UTF_8, CYRILLIC_IO);
|
||||
|
||||
K(0x35, ESCAPE);
|
||||
K('\r', ENTER);
|
||||
|
||||
138
glfw/glfw3.h
vendored
138
glfw/glfw3.h
vendored
@ -342,7 +342,15 @@ extern "C" {
|
||||
|
||||
/* Printable keys */
|
||||
#define GLFW_KEY_SPACE 32
|
||||
#define GLFW_KEY_EXCLAM 33 /* ! */
|
||||
#define GLFW_KEY_DOUBLE_QUOTE 34 /* " */
|
||||
#define GLFW_KEY_NUMBER_SIGN 35 /* # */
|
||||
#define GLFW_KEY_DOLLAR 36 /* $ */
|
||||
#define GLFW_KEY_AMPERSAND 38 /* & */
|
||||
#define GLFW_KEY_APOSTROPHE 39 /* ' */
|
||||
#define GLFW_KEY_PARENTHESIS_LEFT 40 /* ( */
|
||||
#define GLFW_KEY_PARENTHESIS_RIGHT 41 /* ) */
|
||||
#define GLFW_KEY_PLUS 43 /* + */
|
||||
#define GLFW_KEY_COMMA 44 /* , */
|
||||
#define GLFW_KEY_MINUS 45 /* - */
|
||||
#define GLFW_KEY_PERIOD 46 /* . */
|
||||
@ -357,8 +365,12 @@ extern "C" {
|
||||
#define GLFW_KEY_7 55
|
||||
#define GLFW_KEY_8 56
|
||||
#define GLFW_KEY_9 57
|
||||
#define GLFW_KEY_COLON 58 /* : */
|
||||
#define GLFW_KEY_SEMICOLON 59 /* ; */
|
||||
#define GLFW_KEY_LESS 60 /* < */
|
||||
#define GLFW_KEY_EQUAL 61 /* = */
|
||||
#define GLFW_KEY_GREATER 62 /* > */
|
||||
#define GLFW_KEY_AT 64 /* @ */
|
||||
#define GLFW_KEY_A 65
|
||||
#define GLFW_KEY_B 66
|
||||
#define GLFW_KEY_C 67
|
||||
@ -388,13 +400,62 @@ extern "C" {
|
||||
#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
|
||||
#define GLFW_KEY_BACKSLASH 92 /* \ */
|
||||
#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
|
||||
#define GLFW_KEY_UNDERSCORE 95 /* _ */
|
||||
#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
|
||||
#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
|
||||
#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
|
||||
#define GLFW_KEY_PLUS 163
|
||||
#define GLFW_KEY_UNDERSCORE 164
|
||||
#define GLFW_KEY_PARAGRAPH 167 /* § */
|
||||
#define GLFW_KEY_MASCULINE 186 /* º */
|
||||
#define GLFW_KEY_A_GRAVE 192 /* À */
|
||||
#define GLFW_KEY_A_DIAERESIS 196 /* Ä */
|
||||
#define GLFW_KEY_A_RING 197 /* Å */
|
||||
#define GLFW_KEY_AE 198 /* Æ */
|
||||
#define GLFW_KEY_C_CEDILLA 199 /* Ç */
|
||||
#define GLFW_KEY_E_GRAVE 200 /* È */
|
||||
#define GLFW_KEY_E_ACUTE 201 /* É */
|
||||
#define GLFW_KEY_I_GRAVE 204 /* Ì */
|
||||
#define GLFW_KEY_N_TILDE 209 /* Ñ */
|
||||
#define GLFW_KEY_O_GRAVE 210 /* Ò */
|
||||
#define GLFW_KEY_O_DIAERESIS 214 /* Ö */
|
||||
#define GLFW_KEY_O_SLASH 216 /* Ø */
|
||||
#define GLFW_KEY_U_GRAVE 217 /* Ù */
|
||||
#define GLFW_KEY_U_DIAERESIS 220 /* Ü */
|
||||
#define GLFW_KEY_S_SHARP 222 /* ß */
|
||||
#define GLFW_KEY_CYRILLIC_A 223 /* А */
|
||||
#define GLFW_KEY_CYRILLIC_BE 224 /* Б */
|
||||
#define GLFW_KEY_CYRILLIC_VE 225 /* В */
|
||||
#define GLFW_KEY_CYRILLIC_GHE 226 /* Г */
|
||||
#define GLFW_KEY_CYRILLIC_DE 227 /* Д */
|
||||
#define GLFW_KEY_CYRILLIC_IE 228 /* Е */
|
||||
#define GLFW_KEY_CYRILLIC_ZHE 229 /* Ж */
|
||||
#define GLFW_KEY_CYRILLIC_ZE 230 /* З */
|
||||
#define GLFW_KEY_CYRILLIC_I 231 /* И */
|
||||
#define GLFW_KEY_CYRILLIC_SHORT_I 232 /* Й */
|
||||
#define GLFW_KEY_CYRILLIC_KA 233 /* К */
|
||||
#define GLFW_KEY_CYRILLIC_EL 234 /* Л */
|
||||
#define GLFW_KEY_CYRILLIC_EM 235 /* М */
|
||||
#define GLFW_KEY_CYRILLIC_EN 236 /* Н */
|
||||
#define GLFW_KEY_CYRILLIC_O 237 /* О */
|
||||
#define GLFW_KEY_CYRILLIC_PE 238 /* П */
|
||||
#define GLFW_KEY_CYRILLIC_ER 239 /* Р */
|
||||
#define GLFW_KEY_CYRILLIC_ES 240 /* С */
|
||||
#define GLFW_KEY_CYRILLIC_TE 241 /* Т */
|
||||
#define GLFW_KEY_CYRILLIC_U 242 /* У */
|
||||
#define GLFW_KEY_CYRILLIC_EF 243 /* Ф */
|
||||
#define GLFW_KEY_CYRILLIC_HA 244 /* Х */
|
||||
#define GLFW_KEY_CYRILLIC_TSE 245 /* Ц */
|
||||
#define GLFW_KEY_CYRILLIC_CHE 246 /* Ч */
|
||||
#define GLFW_KEY_CYRILLIC_SHA 247 /* Ш */
|
||||
#define GLFW_KEY_CYRILLIC_SHCHA 248 /* Щ */
|
||||
#define GLFW_KEY_CYRILLIC_HARD_SIGN 249 /* Ъ */
|
||||
#define GLFW_KEY_CYRILLIC_YERU 250 /* Ы */
|
||||
#define GLFW_KEY_CYRILLIC_SOFT_SIGN 251 /* Ь */
|
||||
#define GLFW_KEY_CYRILLIC_E 252 /* Э */
|
||||
#define GLFW_KEY_CYRILLIC_YU 253 /* Ю */
|
||||
#define GLFW_KEY_CYRILLIC_YA 254 /* Я */
|
||||
#define GLFW_KEY_CYRILLIC_IO 255 /* Ё */
|
||||
|
||||
#define GLFW_KEY_LAST_PRINTABLE GLFW_KEY_UNDERSCORE
|
||||
#define GLFW_KEY_LAST_PRINTABLE GLFW_KEY_CYRILLIC_IO
|
||||
|
||||
/* Function keys */
|
||||
#define GLFW_KEY_ESCAPE 256
|
||||
@ -3846,20 +3907,85 @@ GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
|
||||
* [key callback](@ref input_key) without modification.
|
||||
*
|
||||
* The printable keys are:
|
||||
* - `GLFW_KEY_SPACE`
|
||||
* - `GLFW_KEY_EXCLAM`
|
||||
* - `GLFW_KEY_DOUBLE_QUOTE`
|
||||
* - `GLFW_KEY_NUMBER_SIGN`
|
||||
* - `GLFW_KEY_DOLLAR`
|
||||
* - `GLFW_KEY_AMPERSAND`
|
||||
* - `GLFW_KEY_APOSTROPHE`
|
||||
* - `GLFW_KEY_PARENTHESIS_LEFT`
|
||||
* - `GLFW_KEY_PARENTHESIS_RIGHT`
|
||||
* - `GLFW_KEY_PLUS`
|
||||
* - `GLFW_KEY_COMMA`
|
||||
* - `GLFW_KEY_MINUS`
|
||||
* - `GLFW_KEY_PERIOD`
|
||||
* - `GLFW_KEY_SLASH`
|
||||
* - `GLFW_KEY_0` to `GLFW_KEY_9`
|
||||
* - `GLFW_KEY_COLON`
|
||||
* - `GLFW_KEY_SEMICOLON`
|
||||
* - `GLFW_KEY_LESS`
|
||||
* - `GLFW_KEY_EQUAL`
|
||||
* - `GLFW_KEY_GREATER`
|
||||
* - `GLFW_KEY_AT`
|
||||
* - `GLFW_KEY_A` to `GLFW_KEY_Z`
|
||||
* - `GLFW_KEY_LEFT_BRACKET`
|
||||
* - `GLFW_KEY_RIGHT_BRACKET`
|
||||
* - `GLFW_KEY_BACKSLASH`
|
||||
* - `GLFW_KEY_RIGHT_BRACKET`
|
||||
* - `GLFW_KEY_UNDERSCORE`
|
||||
* - `GLFW_KEY_GRAVE_ACCENT`
|
||||
* - `GLFW_KEY_WORLD_1`
|
||||
* - `GLFW_KEY_WORLD_2`
|
||||
* - `GLFW_KEY_0` to `GLFW_KEY_9`
|
||||
* - `GLFW_KEY_A` to `GLFW_KEY_Z`
|
||||
* - `GLFW_KEY_PARAGRAPH`
|
||||
* - `GLFW_KEY_MASCULINE`
|
||||
* - `GLFW_KEY_A_GRAVE`
|
||||
* - `GLFW_KEY_A_DIAERESIS`
|
||||
* - `GLFW_KEY_A_RING`
|
||||
* - `GLFW_KEY_AE`
|
||||
* - `GLFW_KEY_C_CEDILLA`
|
||||
* - `GLFW_KEY_E_GRAVE`
|
||||
* - `GLFW_KEY_E_ACUTE`
|
||||
* - `GLFW_KEY_I_GRAVE`
|
||||
* - `GLFW_KEY_N_TILDE`
|
||||
* - `GLFW_KEY_O_GRAVE`
|
||||
* - `GLFW_KEY_O_DIAERESIS`
|
||||
* - `GLFW_KEY_O_SLASH`
|
||||
* - `GLFW_KEY_U_GRAVE`
|
||||
* - `GLFW_KEY_U_DIAERESIS`
|
||||
* - `GLFW_KEY_S_SHARP`
|
||||
* - `GLFW_KEY_CYRILLIC_A`
|
||||
* - `GLFW_KEY_CYRILLIC_BE`
|
||||
* - `GLFW_KEY_CYRILLIC_VE`
|
||||
* - `GLFW_KEY_CYRILLIC_GHE`
|
||||
* - `GLFW_KEY_CYRILLIC_DE`
|
||||
* - `GLFW_KEY_CYRILLIC_IE`
|
||||
* - `GLFW_KEY_CYRILLIC_ZHE`
|
||||
* - `GLFW_KEY_CYRILLIC_ZE`
|
||||
* - `GLFW_KEY_CYRILLIC_I`
|
||||
* - `GLFW_KEY_CYRILLIC_SHORT_I`
|
||||
* - `GLFW_KEY_CYRILLIC_KA`
|
||||
* - `GLFW_KEY_CYRILLIC_EL`
|
||||
* - `GLFW_KEY_CYRILLIC_EM`
|
||||
* - `GLFW_KEY_CYRILLIC_EN`
|
||||
* - `GLFW_KEY_CYRILLIC_O`
|
||||
* - `GLFW_KEY_CYRILLIC_PE`
|
||||
* - `GLFW_KEY_CYRILLIC_ER`
|
||||
* - `GLFW_KEY_CYRILLIC_ES`
|
||||
* - `GLFW_KEY_CYRILLIC_TE`
|
||||
* - `GLFW_KEY_CYRILLIC_U`
|
||||
* - `GLFW_KEY_CYRILLIC_EF`
|
||||
* - `GLFW_KEY_CYRILLIC_HA`
|
||||
* - `GLFW_KEY_CYRILLIC_TSE`
|
||||
* - `GLFW_KEY_CYRILLIC_CHE`
|
||||
* - `GLFW_KEY_CYRILLIC_SHA`
|
||||
* - `GLFW_KEY_CYRILLIC_SHCHA`
|
||||
* - `GLFW_KEY_CYRILLIC_HARD_SIGN`
|
||||
* - `GLFW_KEY_CYRILLIC_YERU`
|
||||
* - `GLFW_KEY_CYRILLIC_SOFT_SIGN`
|
||||
* - `GLFW_KEY_CYRILLIC_E`
|
||||
* - `GLFW_KEY_CYRILLIC_YU`
|
||||
* - `GLFW_KEY_CYRILLIC_YA`
|
||||
* - `GLFW_KEY_CYRILLIC_IO`
|
||||
* - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9`
|
||||
* - `GLFW_KEY_KP_DECIMAL`
|
||||
* - `GLFW_KEY_KP_DIVIDE`
|
||||
|
||||
307
glfw/input.c
vendored
307
glfw/input.c
vendored
@ -439,132 +439,193 @@ const char* _glfwGetKeyName(int key)
|
||||
switch (key)
|
||||
{
|
||||
// Printable keys
|
||||
case GLFW_KEY_A: return "A";
|
||||
case GLFW_KEY_B: return "B";
|
||||
case GLFW_KEY_C: return "C";
|
||||
case GLFW_KEY_D: return "D";
|
||||
case GLFW_KEY_E: return "E";
|
||||
case GLFW_KEY_F: return "F";
|
||||
case GLFW_KEY_G: return "G";
|
||||
case GLFW_KEY_H: return "H";
|
||||
case GLFW_KEY_I: return "I";
|
||||
case GLFW_KEY_J: return "J";
|
||||
case GLFW_KEY_K: return "K";
|
||||
case GLFW_KEY_L: return "L";
|
||||
case GLFW_KEY_M: return "M";
|
||||
case GLFW_KEY_N: return "N";
|
||||
case GLFW_KEY_O: return "O";
|
||||
case GLFW_KEY_P: return "P";
|
||||
case GLFW_KEY_Q: return "Q";
|
||||
case GLFW_KEY_R: return "R";
|
||||
case GLFW_KEY_S: return "S";
|
||||
case GLFW_KEY_T: return "T";
|
||||
case GLFW_KEY_U: return "U";
|
||||
case GLFW_KEY_V: return "V";
|
||||
case GLFW_KEY_W: return "W";
|
||||
case GLFW_KEY_X: return "X";
|
||||
case GLFW_KEY_Y: return "Y";
|
||||
case GLFW_KEY_Z: return "Z";
|
||||
case GLFW_KEY_1: return "1";
|
||||
case GLFW_KEY_2: return "2";
|
||||
case GLFW_KEY_3: return "3";
|
||||
case GLFW_KEY_4: return "4";
|
||||
case GLFW_KEY_5: return "5";
|
||||
case GLFW_KEY_6: return "6";
|
||||
case GLFW_KEY_7: return "7";
|
||||
case GLFW_KEY_8: return "8";
|
||||
case GLFW_KEY_9: return "9";
|
||||
case GLFW_KEY_0: return "0";
|
||||
case GLFW_KEY_SPACE: return "SPACE";
|
||||
case GLFW_KEY_MINUS: return "MINUS";
|
||||
case GLFW_KEY_EQUAL: return "EQUAL";
|
||||
case GLFW_KEY_LEFT_BRACKET: return "LEFT BRACKET";
|
||||
case GLFW_KEY_RIGHT_BRACKET: return "RIGHT BRACKET";
|
||||
case GLFW_KEY_BACKSLASH: return "BACKSLASH";
|
||||
case GLFW_KEY_SEMICOLON: return "SEMICOLON";
|
||||
case GLFW_KEY_APOSTROPHE: return "APOSTROPHE";
|
||||
case GLFW_KEY_GRAVE_ACCENT: return "GRAVE ACCENT";
|
||||
case GLFW_KEY_COMMA: return "COMMA";
|
||||
case GLFW_KEY_PERIOD: return "PERIOD";
|
||||
case GLFW_KEY_SLASH: return "SLASH";
|
||||
case GLFW_KEY_WORLD_1: return "WORLD 1";
|
||||
case GLFW_KEY_WORLD_2: return "WORLD 2";
|
||||
case GLFW_KEY_PLUS: return "PLUS";
|
||||
case GLFW_KEY_UNDERSCORE: return "UNDERSCORE";
|
||||
case GLFW_KEY_SPACE: return "SPACE";
|
||||
case GLFW_KEY_EXCLAM: return "EXCLAM";
|
||||
case GLFW_KEY_DOUBLE_QUOTE: return "DOUBLE_QUOTE";
|
||||
case GLFW_KEY_NUMBER_SIGN: return "NUMBER_SIGN";
|
||||
case GLFW_KEY_DOLLAR: return "DOLLAR";
|
||||
case GLFW_KEY_AMPERSAND: return "AMPERSAND";
|
||||
case GLFW_KEY_APOSTROPHE: return "APOSTROPHE";
|
||||
case GLFW_KEY_PARENTHESIS_LEFT: return "PARENTHESIS_LEFT";
|
||||
case GLFW_KEY_PARENTHESIS_RIGHT: return "PARENTHESIS_RIGHT";
|
||||
case GLFW_KEY_PLUS: return "PLUS";
|
||||
case GLFW_KEY_COMMA: return "COMMA";
|
||||
case GLFW_KEY_MINUS: return "MINUS";
|
||||
case GLFW_KEY_PERIOD: return "PERIOD";
|
||||
case GLFW_KEY_SLASH: return "SLASH";
|
||||
case GLFW_KEY_0: return "0";
|
||||
case GLFW_KEY_1: return "1";
|
||||
case GLFW_KEY_2: return "2";
|
||||
case GLFW_KEY_3: return "3";
|
||||
case GLFW_KEY_4: return "4";
|
||||
case GLFW_KEY_5: return "5";
|
||||
case GLFW_KEY_6: return "6";
|
||||
case GLFW_KEY_7: return "7";
|
||||
case GLFW_KEY_8: return "8";
|
||||
case GLFW_KEY_9: return "9";
|
||||
case GLFW_KEY_COLON: return "COLON";
|
||||
case GLFW_KEY_SEMICOLON: return "SEMICOLON";
|
||||
case GLFW_KEY_LESS: return "LESS";
|
||||
case GLFW_KEY_EQUAL: return "EQUAL";
|
||||
case GLFW_KEY_GREATER: return "GREATER";
|
||||
case GLFW_KEY_AT: return "AT";
|
||||
case GLFW_KEY_A: return "A";
|
||||
case GLFW_KEY_B: return "B";
|
||||
case GLFW_KEY_C: return "C";
|
||||
case GLFW_KEY_D: return "D";
|
||||
case GLFW_KEY_E: return "E";
|
||||
case GLFW_KEY_F: return "F";
|
||||
case GLFW_KEY_G: return "G";
|
||||
case GLFW_KEY_H: return "H";
|
||||
case GLFW_KEY_I: return "I";
|
||||
case GLFW_KEY_J: return "J";
|
||||
case GLFW_KEY_K: return "K";
|
||||
case GLFW_KEY_L: return "L";
|
||||
case GLFW_KEY_M: return "M";
|
||||
case GLFW_KEY_N: return "N";
|
||||
case GLFW_KEY_O: return "O";
|
||||
case GLFW_KEY_P: return "P";
|
||||
case GLFW_KEY_Q: return "Q";
|
||||
case GLFW_KEY_R: return "R";
|
||||
case GLFW_KEY_S: return "S";
|
||||
case GLFW_KEY_T: return "T";
|
||||
case GLFW_KEY_U: return "U";
|
||||
case GLFW_KEY_V: return "V";
|
||||
case GLFW_KEY_W: return "W";
|
||||
case GLFW_KEY_X: return "X";
|
||||
case GLFW_KEY_Y: return "Y";
|
||||
case GLFW_KEY_Z: return "Z";
|
||||
case GLFW_KEY_LEFT_BRACKET: return "LEFT_BRACKET";
|
||||
case GLFW_KEY_BACKSLASH: return "BACKSLASH";
|
||||
case GLFW_KEY_RIGHT_BRACKET: return "RIGHT_BRACKET";
|
||||
case GLFW_KEY_UNDERSCORE: return "UNDERSCORE";
|
||||
case GLFW_KEY_GRAVE_ACCENT: return "GRAVE_ACCENT";
|
||||
case GLFW_KEY_WORLD_1: return "WORLD_1";
|
||||
case GLFW_KEY_WORLD_2: return "WORLD_2";
|
||||
case GLFW_KEY_PARAGRAPH: return "PARAGRAPH";
|
||||
case GLFW_KEY_MASCULINE: return "MASCULINE";
|
||||
case GLFW_KEY_A_GRAVE: return "A_GRAVE";
|
||||
case GLFW_KEY_A_DIAERESIS: return "A_DIAERESIS";
|
||||
case GLFW_KEY_A_RING: return "A_RING";
|
||||
case GLFW_KEY_AE: return "AE";
|
||||
case GLFW_KEY_C_CEDILLA: return "C_CEDILLA";
|
||||
case GLFW_KEY_E_GRAVE: return "E_GRAVE";
|
||||
case GLFW_KEY_E_ACUTE: return "E_ACUTE";
|
||||
case GLFW_KEY_I_GRAVE: return "I_GRAVE";
|
||||
case GLFW_KEY_N_TILDE: return "N_TILDE";
|
||||
case GLFW_KEY_O_GRAVE: return "O_GRAVE";
|
||||
case GLFW_KEY_O_DIAERESIS: return "O_DIAERESIS";
|
||||
case GLFW_KEY_O_SLASH: return "O_SLASH";
|
||||
case GLFW_KEY_U_GRAVE: return "U_GRAVE";
|
||||
case GLFW_KEY_U_DIAERESIS: return "U_DIAERESIS";
|
||||
case GLFW_KEY_S_SHARP: return "S_SHARP";
|
||||
case GLFW_KEY_CYRILLIC_A: return "CYRILLIC_A";
|
||||
case GLFW_KEY_CYRILLIC_BE: return "CYRILLIC_BE";
|
||||
case GLFW_KEY_CYRILLIC_VE: return "CYRILLIC_VE";
|
||||
case GLFW_KEY_CYRILLIC_GHE: return "CYRILLIC_GHE";
|
||||
case GLFW_KEY_CYRILLIC_DE: return "CYRILLIC_DE";
|
||||
case GLFW_KEY_CYRILLIC_IE: return "CYRILLIC_IE";
|
||||
case GLFW_KEY_CYRILLIC_ZHE: return "CYRILLIC_ZHE";
|
||||
case GLFW_KEY_CYRILLIC_ZE: return "CYRILLIC_ZE";
|
||||
case GLFW_KEY_CYRILLIC_I: return "CYRILLIC_I";
|
||||
case GLFW_KEY_CYRILLIC_SHORT_I: return "CYRILLIC_SHORT_I";
|
||||
case GLFW_KEY_CYRILLIC_KA: return "CYRILLIC_KA";
|
||||
case GLFW_KEY_CYRILLIC_EL: return "CYRILLIC_EL";
|
||||
case GLFW_KEY_CYRILLIC_EM: return "CYRILLIC_EM";
|
||||
case GLFW_KEY_CYRILLIC_EN: return "CYRILLIC_EN";
|
||||
case GLFW_KEY_CYRILLIC_O: return "CYRILLIC_O";
|
||||
case GLFW_KEY_CYRILLIC_PE: return "CYRILLIC_PE";
|
||||
case GLFW_KEY_CYRILLIC_ER: return "CYRILLIC_ER";
|
||||
case GLFW_KEY_CYRILLIC_ES: return "CYRILLIC_ES";
|
||||
case GLFW_KEY_CYRILLIC_TE: return "CYRILLIC_TE";
|
||||
case GLFW_KEY_CYRILLIC_U: return "CYRILLIC_U";
|
||||
case GLFW_KEY_CYRILLIC_EF: return "CYRILLIC_EF";
|
||||
case GLFW_KEY_CYRILLIC_HA: return "CYRILLIC_HA";
|
||||
case GLFW_KEY_CYRILLIC_TSE: return "CYRILLIC_TSE";
|
||||
case GLFW_KEY_CYRILLIC_CHE: return "CYRILLIC_CHE";
|
||||
case GLFW_KEY_CYRILLIC_SHA: return "CYRILLIC_SHA";
|
||||
case GLFW_KEY_CYRILLIC_SHCHA: return "CYRILLIC_SHCHA";
|
||||
case GLFW_KEY_CYRILLIC_HARD_SIGN: return "CYRILLIC_HARD_SIGN";
|
||||
case GLFW_KEY_CYRILLIC_YERU: return "CYRILLIC_YERU";
|
||||
case GLFW_KEY_CYRILLIC_SOFT_SIGN: return "CYRILLIC_SOFT_SIGN";
|
||||
case GLFW_KEY_CYRILLIC_E: return "CYRILLIC_E";
|
||||
case GLFW_KEY_CYRILLIC_YU: return "CYRILLIC_YU";
|
||||
case GLFW_KEY_CYRILLIC_YA: return "CYRILLIC_YA";
|
||||
case GLFW_KEY_CYRILLIC_IO: return "CYRILLIC_IO";
|
||||
|
||||
// Function keys
|
||||
case GLFW_KEY_ESCAPE: return "ESCAPE";
|
||||
case GLFW_KEY_F1: return "F1";
|
||||
case GLFW_KEY_F2: return "F2";
|
||||
case GLFW_KEY_F3: return "F3";
|
||||
case GLFW_KEY_F4: return "F4";
|
||||
case GLFW_KEY_F5: return "F5";
|
||||
case GLFW_KEY_F6: return "F6";
|
||||
case GLFW_KEY_F7: return "F7";
|
||||
case GLFW_KEY_F8: return "F8";
|
||||
case GLFW_KEY_F9: return "F9";
|
||||
case GLFW_KEY_F10: return "F10";
|
||||
case GLFW_KEY_F11: return "F11";
|
||||
case GLFW_KEY_F12: return "F12";
|
||||
case GLFW_KEY_F13: return "F13";
|
||||
case GLFW_KEY_F14: return "F14";
|
||||
case GLFW_KEY_F15: return "F15";
|
||||
case GLFW_KEY_F16: return "F16";
|
||||
case GLFW_KEY_F17: return "F17";
|
||||
case GLFW_KEY_F18: return "F18";
|
||||
case GLFW_KEY_F19: return "F19";
|
||||
case GLFW_KEY_F20: return "F20";
|
||||
case GLFW_KEY_F21: return "F21";
|
||||
case GLFW_KEY_F22: return "F22";
|
||||
case GLFW_KEY_F23: return "F23";
|
||||
case GLFW_KEY_F24: return "F24";
|
||||
case GLFW_KEY_F25: return "F25";
|
||||
case GLFW_KEY_UP: return "UP";
|
||||
case GLFW_KEY_DOWN: return "DOWN";
|
||||
case GLFW_KEY_LEFT: return "LEFT";
|
||||
case GLFW_KEY_RIGHT: return "RIGHT";
|
||||
case GLFW_KEY_LEFT_SHIFT: return "LEFT SHIFT";
|
||||
case GLFW_KEY_RIGHT_SHIFT: return "RIGHT SHIFT";
|
||||
case GLFW_KEY_LEFT_CONTROL: return "LEFT CONTROL";
|
||||
case GLFW_KEY_RIGHT_CONTROL: return "RIGHT CONTROL";
|
||||
case GLFW_KEY_LEFT_ALT: return "LEFT ALT";
|
||||
case GLFW_KEY_RIGHT_ALT: return "RIGHT ALT";
|
||||
case GLFW_KEY_TAB: return "TAB";
|
||||
case GLFW_KEY_ENTER: return "ENTER";
|
||||
case GLFW_KEY_BACKSPACE: return "BACKSPACE";
|
||||
case GLFW_KEY_INSERT: return "INSERT";
|
||||
case GLFW_KEY_DELETE: return "DELETE";
|
||||
case GLFW_KEY_PAGE_UP: return "PAGE UP";
|
||||
case GLFW_KEY_PAGE_DOWN: return "PAGE DOWN";
|
||||
case GLFW_KEY_HOME: return "HOME";
|
||||
case GLFW_KEY_END: return "END";
|
||||
case GLFW_KEY_KP_0: return "KEYPAD 0";
|
||||
case GLFW_KEY_KP_1: return "KEYPAD 1";
|
||||
case GLFW_KEY_KP_2: return "KEYPAD 2";
|
||||
case GLFW_KEY_KP_3: return "KEYPAD 3";
|
||||
case GLFW_KEY_KP_4: return "KEYPAD 4";
|
||||
case GLFW_KEY_KP_5: return "KEYPAD 5";
|
||||
case GLFW_KEY_KP_6: return "KEYPAD 6";
|
||||
case GLFW_KEY_KP_7: return "KEYPAD 7";
|
||||
case GLFW_KEY_KP_8: return "KEYPAD 8";
|
||||
case GLFW_KEY_KP_9: return "KEYPAD 9";
|
||||
case GLFW_KEY_KP_DIVIDE: return "KEYPAD DIVIDE";
|
||||
case GLFW_KEY_KP_MULTIPLY: return "KEYPAD MULTIPLY";
|
||||
case GLFW_KEY_KP_SUBTRACT: return "KEYPAD SUBTRACT";
|
||||
case GLFW_KEY_KP_ADD: return "KEYPAD ADD";
|
||||
case GLFW_KEY_KP_DECIMAL: return "KEYPAD DECIMAL";
|
||||
case GLFW_KEY_KP_EQUAL: return "KEYPAD EQUAL";
|
||||
case GLFW_KEY_KP_ENTER: return "KEYPAD ENTER";
|
||||
case GLFW_KEY_PRINT_SCREEN: return "PRINT SCREEN";
|
||||
case GLFW_KEY_NUM_LOCK: return "NUM LOCK";
|
||||
case GLFW_KEY_CAPS_LOCK: return "CAPS LOCK";
|
||||
case GLFW_KEY_SCROLL_LOCK: return "SCROLL LOCK";
|
||||
case GLFW_KEY_PAUSE: return "PAUSE";
|
||||
case GLFW_KEY_LEFT_SUPER: return "LEFT SUPER";
|
||||
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
|
||||
case GLFW_KEY_MENU: return "MENU";
|
||||
case GLFW_KEY_ESCAPE: return "ESCAPE";
|
||||
case GLFW_KEY_F1: return "F1";
|
||||
case GLFW_KEY_F2: return "F2";
|
||||
case GLFW_KEY_F3: return "F3";
|
||||
case GLFW_KEY_F4: return "F4";
|
||||
case GLFW_KEY_F5: return "F5";
|
||||
case GLFW_KEY_F6: return "F6";
|
||||
case GLFW_KEY_F7: return "F7";
|
||||
case GLFW_KEY_F8: return "F8";
|
||||
case GLFW_KEY_F9: return "F9";
|
||||
case GLFW_KEY_F10: return "F10";
|
||||
case GLFW_KEY_F11: return "F11";
|
||||
case GLFW_KEY_F12: return "F12";
|
||||
case GLFW_KEY_F13: return "F13";
|
||||
case GLFW_KEY_F14: return "F14";
|
||||
case GLFW_KEY_F15: return "F15";
|
||||
case GLFW_KEY_F16: return "F16";
|
||||
case GLFW_KEY_F17: return "F17";
|
||||
case GLFW_KEY_F18: return "F18";
|
||||
case GLFW_KEY_F19: return "F19";
|
||||
case GLFW_KEY_F20: return "F20";
|
||||
case GLFW_KEY_F21: return "F21";
|
||||
case GLFW_KEY_F22: return "F22";
|
||||
case GLFW_KEY_F23: return "F23";
|
||||
case GLFW_KEY_F24: return "F24";
|
||||
case GLFW_KEY_F25: return "F25";
|
||||
case GLFW_KEY_UP: return "UP";
|
||||
case GLFW_KEY_DOWN: return "DOWN";
|
||||
case GLFW_KEY_LEFT: return "LEFT";
|
||||
case GLFW_KEY_RIGHT: return "RIGHT";
|
||||
case GLFW_KEY_LEFT_SHIFT: return "LEFT SHIFT";
|
||||
case GLFW_KEY_RIGHT_SHIFT: return "RIGHT SHIFT";
|
||||
case GLFW_KEY_LEFT_CONTROL: return "LEFT CONTROL";
|
||||
case GLFW_KEY_RIGHT_CONTROL: return "RIGHT CONTROL";
|
||||
case GLFW_KEY_LEFT_ALT: return "LEFT ALT";
|
||||
case GLFW_KEY_RIGHT_ALT: return "RIGHT ALT";
|
||||
case GLFW_KEY_TAB: return "TAB";
|
||||
case GLFW_KEY_ENTER: return "ENTER";
|
||||
case GLFW_KEY_BACKSPACE: return "BACKSPACE";
|
||||
case GLFW_KEY_INSERT: return "INSERT";
|
||||
case GLFW_KEY_DELETE: return "DELETE";
|
||||
case GLFW_KEY_PAGE_UP: return "PAGE UP";
|
||||
case GLFW_KEY_PAGE_DOWN: return "PAGE DOWN";
|
||||
case GLFW_KEY_HOME: return "HOME";
|
||||
case GLFW_KEY_END: return "END";
|
||||
case GLFW_KEY_KP_0: return "KEYPAD 0";
|
||||
case GLFW_KEY_KP_1: return "KEYPAD 1";
|
||||
case GLFW_KEY_KP_2: return "KEYPAD 2";
|
||||
case GLFW_KEY_KP_3: return "KEYPAD 3";
|
||||
case GLFW_KEY_KP_4: return "KEYPAD 4";
|
||||
case GLFW_KEY_KP_5: return "KEYPAD 5";
|
||||
case GLFW_KEY_KP_6: return "KEYPAD 6";
|
||||
case GLFW_KEY_KP_7: return "KEYPAD 7";
|
||||
case GLFW_KEY_KP_8: return "KEYPAD 8";
|
||||
case GLFW_KEY_KP_9: return "KEYPAD 9";
|
||||
case GLFW_KEY_KP_DIVIDE: return "KEYPAD DIVIDE";
|
||||
case GLFW_KEY_KP_MULTIPLY: return "KEYPAD MULTIPLY";
|
||||
case GLFW_KEY_KP_SUBTRACT: return "KEYPAD SUBTRACT";
|
||||
case GLFW_KEY_KP_ADD: return "KEYPAD ADD";
|
||||
case GLFW_KEY_KP_DECIMAL: return "KEYPAD DECIMAL";
|
||||
case GLFW_KEY_KP_EQUAL: return "KEYPAD EQUAL";
|
||||
case GLFW_KEY_KP_ENTER: return "KEYPAD ENTER";
|
||||
case GLFW_KEY_PRINT_SCREEN: return "PRINT SCREEN";
|
||||
case GLFW_KEY_NUM_LOCK: return "NUM LOCK";
|
||||
case GLFW_KEY_CAPS_LOCK: return "CAPS LOCK";
|
||||
case GLFW_KEY_SCROLL_LOCK: return "SCROLL LOCK";
|
||||
case GLFW_KEY_PAUSE: return "PAUSE";
|
||||
case GLFW_KEY_LEFT_SUPER: return "LEFT SUPER";
|
||||
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
|
||||
case GLFW_KEY_MENU: return "MENU";
|
||||
|
||||
default: return "UNKNOWN";
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
116
glfw/xkb_glfw.c
vendored
116
glfw/xkb_glfw.c
vendored
@ -37,19 +37,130 @@ START_ALLOW_CASE_RANGE
|
||||
#define map_key(key) \
|
||||
switch(key) { \
|
||||
S(space, SPACE); \
|
||||
S(exclam, EXCLAM); \
|
||||
S(quotedbl, DOUBLE_QUOTE); \
|
||||
S(numbersign, NUMBER_SIGN); \
|
||||
S(dollar, DOLLAR); \
|
||||
S(ampersand, AMPERSAND); \
|
||||
S(apostrophe, APOSTROPHE); \
|
||||
S(parenleft, PARENTHESIS_LEFT); \
|
||||
S(parenright, PARENTHESIS_RIGHT); \
|
||||
S(plus, PLUS); \
|
||||
S(comma, COMMA); \
|
||||
S(minus, MINUS); \
|
||||
S(period, PERIOD); \
|
||||
S(slash, SLASH); \
|
||||
R(0, 9, 0, 9); \
|
||||
S(colon, COLON); \
|
||||
S(semicolon, SEMICOLON); \
|
||||
S(less, LESS); \
|
||||
S(equal, EQUAL); \
|
||||
S(greater, GREATER); \
|
||||
S(at, AT); \
|
||||
D(A, Z, A, Z); \
|
||||
S(bracketleft, LEFT_BRACKET); \
|
||||
S(backslash, BACKSLASH); \
|
||||
S(bracketright, RIGHT_BRACKET); \
|
||||
S(plus, PLUS); \
|
||||
S(underscore, UNDERSCORE); \
|
||||
S(grave, GRAVE_ACCENT); \
|
||||
R(a, z, A, Z); \
|
||||
S(paragraph, PARAGRAPH); \
|
||||
S(masculine, MASCULINE); \
|
||||
S(agrave, A_GRAVE); \
|
||||
F(Agrave, A_GRAVE); \
|
||||
S(adiaeresis, A_DIAERESIS); \
|
||||
F(Adiaeresis, A_DIAERESIS); \
|
||||
S(aring, A_RING); \
|
||||
F(Aring, A_RING); \
|
||||
S(ae, AE); \
|
||||
F(AE, AE); \
|
||||
S(ccedilla, C_CEDILLA); \
|
||||
F(Ccedilla, C_CEDILLA); \
|
||||
S(egrave, E_GRAVE); \
|
||||
F(Egrave, E_GRAVE); \
|
||||
S(aacute, E_ACUTE); \
|
||||
F(Eacute, E_ACUTE); \
|
||||
S(igrave, I_GRAVE); \
|
||||
F(Igrave, I_GRAVE); \
|
||||
S(ntilde, N_TILDE); \
|
||||
F(Ntilde, N_TILDE); \
|
||||
S(ograve, O_GRAVE); \
|
||||
F(Ograve, O_GRAVE); \
|
||||
S(odiaeresis, O_DIAERESIS); \
|
||||
F(Odiaeresis, O_DIAERESIS); \
|
||||
S(oslash, O_SLASH); \
|
||||
F(Oslash, O_SLASH); \
|
||||
S(ugrave, U_GRAVE); \
|
||||
F(Ugrave, U_GRAVE); \
|
||||
S(udiaeresis, U_DIAERESIS); \
|
||||
F(Udiaeresis, U_DIAERESIS); \
|
||||
S(ssharp, S_SHARP); \
|
||||
S(Cyrillic_a, CYRILLIC_A); \
|
||||
F(Cyrillic_A, CYRILLIC_A); \
|
||||
S(Cyrillic_be, CYRILLIC_BE); \
|
||||
F(Cyrillic_BE, CYRILLIC_BE); \
|
||||
S(Cyrillic_ve, CYRILLIC_VE); \
|
||||
F(Cyrillic_VE, CYRILLIC_VE); \
|
||||
S(Cyrillic_ghe, CYRILLIC_GHE); \
|
||||
F(Cyrillic_GHE, CYRILLIC_GHE); \
|
||||
S(Cyrillic_de, CYRILLIC_DE); \
|
||||
F(Cyrillic_DE, CYRILLIC_DE); \
|
||||
S(Cyrillic_ie, CYRILLIC_IE); \
|
||||
F(Cyrillic_IE, CYRILLIC_IE); \
|
||||
S(Cyrillic_zhe, CYRILLIC_ZHE); \
|
||||
F(Cyrillic_ZHE, CYRILLIC_ZHE); \
|
||||
S(Cyrillic_ze, CYRILLIC_ZE); \
|
||||
F(Cyrillic_ZE, CYRILLIC_ZE); \
|
||||
S(Cyrillic_i, CYRILLIC_I); \
|
||||
F(Cyrillic_I, CYRILLIC_I); \
|
||||
S(Cyrillic_shorti, CYRILLIC_SHORT_I); \
|
||||
F(Cyrillic_SHORTI, CYRILLIC_SHORT_I); \
|
||||
S(Cyrillic_ka, CYRILLIC_KA); \
|
||||
F(Cyrillic_KA, CYRILLIC_KA); \
|
||||
S(Cyrillic_el, CYRILLIC_EL); \
|
||||
F(Cyrillic_EL, CYRILLIC_EL); \
|
||||
S(Cyrillic_em, CYRILLIC_EM); \
|
||||
F(Cyrillic_EM, CYRILLIC_EM); \
|
||||
S(Cyrillic_en, CYRILLIC_EN); \
|
||||
F(Cyrillic_EN, CYRILLIC_EN); \
|
||||
S(Cyrillic_o, CYRILLIC_O); \
|
||||
F(Cyrillic_O, CYRILLIC_O); \
|
||||
S(Cyrillic_pe, CYRILLIC_PE); \
|
||||
F(Cyrillic_PE, CYRILLIC_PE); \
|
||||
S(Cyrillic_er, CYRILLIC_ER); \
|
||||
F(Cyrillic_ER, CYRILLIC_ER); \
|
||||
S(Cyrillic_es, CYRILLIC_ES); \
|
||||
F(Cyrillic_ES, CYRILLIC_ES); \
|
||||
S(Cyrillic_te, CYRILLIC_TE); \
|
||||
F(Cyrillic_TE, CYRILLIC_TE); \
|
||||
S(Cyrillic_u, CYRILLIC_U); \
|
||||
F(Cyrillic_U, CYRILLIC_U); \
|
||||
S(Cyrillic_ef, CYRILLIC_EF); \
|
||||
F(Cyrillic_EF, CYRILLIC_EF); \
|
||||
S(Cyrillic_ha, CYRILLIC_HA); \
|
||||
F(Cyrillic_HA, CYRILLIC_HA); \
|
||||
S(Cyrillic_tse, CYRILLIC_TSE); \
|
||||
F(Cyrillic_TSE, CYRILLIC_TSE); \
|
||||
S(Cyrillic_che, CYRILLIC_CHE); \
|
||||
F(Cyrillic_CHE, CYRILLIC_CHE); \
|
||||
S(Cyrillic_sha, CYRILLIC_SHA); \
|
||||
F(Cyrillic_SHA, CYRILLIC_SHA); \
|
||||
S(Cyrillic_shcha, CYRILLIC_SHCHA); \
|
||||
F(Cyrillic_SHCHA, CYRILLIC_SHCHA); \
|
||||
S(Cyrillic_hardsign, CYRILLIC_HARD_SIGN); \
|
||||
F(Cyrillic_HARDSIGN, CYRILLIC_HARD_SIGN); \
|
||||
S(Cyrillic_yeru, CYRILLIC_YERU); \
|
||||
F(Cyrillic_YERU, CYRILLIC_YERU); \
|
||||
S(Cyrillic_softsign, CYRILLIC_SOFT_SIGN); \
|
||||
F(Cyrillic_SOFTSIGN, CYRILLIC_SOFT_SIGN); \
|
||||
S(Cyrillic_e, CYRILLIC_E); \
|
||||
F(Cyrillic_E, CYRILLIC_E); \
|
||||
S(Cyrillic_yu, CYRILLIC_YU); \
|
||||
F(Cyrillic_YU, CYRILLIC_YU); \
|
||||
S(Cyrillic_ya, CYRILLIC_YA); \
|
||||
F(Cyrillic_YA, CYRILLIC_YA); \
|
||||
S(Cyrillic_io, CYRILLIC_IO); \
|
||||
F(Cyrillic_IO, CYRILLIC_IO); \
|
||||
S(Escape, ESCAPE); \
|
||||
S(Return, ENTER); \
|
||||
S(Tab, TAB); \
|
||||
@ -91,9 +202,6 @@ START_ALLOW_CASE_RANGE
|
||||
S(Alt_R, RIGHT_ALT); \
|
||||
S(Super_R, RIGHT_SUPER); \
|
||||
S(Menu, MENU); \
|
||||
R(0, 9, 0, 9); \
|
||||
R(a, z, A, Z); \
|
||||
D(A, Z, A, Z); \
|
||||
R(F1, F25, F1, F25); \
|
||||
R(KP_0, KP_9, KP_0, KP_9); \
|
||||
|
||||
|
||||
67
kitty/glfw-wrapper.h
generated
67
kitty/glfw-wrapper.h
generated
@ -99,7 +99,15 @@
|
||||
|
||||
/* Printable keys */
|
||||
#define GLFW_KEY_SPACE 32
|
||||
#define GLFW_KEY_EXCLAM 33 /* ! */
|
||||
#define GLFW_KEY_DOUBLE_QUOTE 34 /* " */
|
||||
#define GLFW_KEY_NUMBER_SIGN 35 /* # */
|
||||
#define GLFW_KEY_DOLLAR 36 /* $ */
|
||||
#define GLFW_KEY_AMPERSAND 38 /* & */
|
||||
#define GLFW_KEY_APOSTROPHE 39 /* ' */
|
||||
#define GLFW_KEY_PARENTHESIS_LEFT 40 /* ( */
|
||||
#define GLFW_KEY_PARENTHESIS_RIGHT 41 /* ) */
|
||||
#define GLFW_KEY_PLUS 43 /* + */
|
||||
#define GLFW_KEY_COMMA 44 /* , */
|
||||
#define GLFW_KEY_MINUS 45 /* - */
|
||||
#define GLFW_KEY_PERIOD 46 /* . */
|
||||
@ -114,8 +122,12 @@
|
||||
#define GLFW_KEY_7 55
|
||||
#define GLFW_KEY_8 56
|
||||
#define GLFW_KEY_9 57
|
||||
#define GLFW_KEY_COLON 58 /* : */
|
||||
#define GLFW_KEY_SEMICOLON 59 /* ; */
|
||||
#define GLFW_KEY_LESS 60 /* < */
|
||||
#define GLFW_KEY_EQUAL 61 /* = */
|
||||
#define GLFW_KEY_GREATER 62 /* > */
|
||||
#define GLFW_KEY_AT 64 /* @ */
|
||||
#define GLFW_KEY_A 65
|
||||
#define GLFW_KEY_B 66
|
||||
#define GLFW_KEY_C 67
|
||||
@ -145,13 +157,62 @@
|
||||
#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
|
||||
#define GLFW_KEY_BACKSLASH 92 /* \ */
|
||||
#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
|
||||
#define GLFW_KEY_UNDERSCORE 95 /* _ */
|
||||
#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
|
||||
#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
|
||||
#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
|
||||
#define GLFW_KEY_PLUS 163
|
||||
#define GLFW_KEY_UNDERSCORE 164
|
||||
#define GLFW_KEY_PARAGRAPH 167 /* § */
|
||||
#define GLFW_KEY_MASCULINE 186 /* º */
|
||||
#define GLFW_KEY_A_GRAVE 192 /* À */
|
||||
#define GLFW_KEY_A_DIAERESIS 196 /* Ä */
|
||||
#define GLFW_KEY_A_RING 197 /* Å */
|
||||
#define GLFW_KEY_AE 198 /* Æ */
|
||||
#define GLFW_KEY_C_CEDILLA 199 /* Ç */
|
||||
#define GLFW_KEY_E_GRAVE 200 /* È */
|
||||
#define GLFW_KEY_E_ACUTE 201 /* É */
|
||||
#define GLFW_KEY_I_GRAVE 204 /* Ì */
|
||||
#define GLFW_KEY_N_TILDE 209 /* Ñ */
|
||||
#define GLFW_KEY_O_GRAVE 210 /* Ò */
|
||||
#define GLFW_KEY_O_DIAERESIS 214 /* Ö */
|
||||
#define GLFW_KEY_O_SLASH 216 /* Ø */
|
||||
#define GLFW_KEY_U_GRAVE 217 /* Ù */
|
||||
#define GLFW_KEY_U_DIAERESIS 220 /* Ü */
|
||||
#define GLFW_KEY_S_SHARP 222 /* ß */
|
||||
#define GLFW_KEY_CYRILLIC_A 223 /* А */
|
||||
#define GLFW_KEY_CYRILLIC_BE 224 /* Б */
|
||||
#define GLFW_KEY_CYRILLIC_VE 225 /* В */
|
||||
#define GLFW_KEY_CYRILLIC_GHE 226 /* Г */
|
||||
#define GLFW_KEY_CYRILLIC_DE 227 /* Д */
|
||||
#define GLFW_KEY_CYRILLIC_IE 228 /* Е */
|
||||
#define GLFW_KEY_CYRILLIC_ZHE 229 /* Ж */
|
||||
#define GLFW_KEY_CYRILLIC_ZE 230 /* З */
|
||||
#define GLFW_KEY_CYRILLIC_I 231 /* И */
|
||||
#define GLFW_KEY_CYRILLIC_SHORT_I 232 /* Й */
|
||||
#define GLFW_KEY_CYRILLIC_KA 233 /* К */
|
||||
#define GLFW_KEY_CYRILLIC_EL 234 /* Л */
|
||||
#define GLFW_KEY_CYRILLIC_EM 235 /* М */
|
||||
#define GLFW_KEY_CYRILLIC_EN 236 /* Н */
|
||||
#define GLFW_KEY_CYRILLIC_O 237 /* О */
|
||||
#define GLFW_KEY_CYRILLIC_PE 238 /* П */
|
||||
#define GLFW_KEY_CYRILLIC_ER 239 /* Р */
|
||||
#define GLFW_KEY_CYRILLIC_ES 240 /* С */
|
||||
#define GLFW_KEY_CYRILLIC_TE 241 /* Т */
|
||||
#define GLFW_KEY_CYRILLIC_U 242 /* У */
|
||||
#define GLFW_KEY_CYRILLIC_EF 243 /* Ф */
|
||||
#define GLFW_KEY_CYRILLIC_HA 244 /* Х */
|
||||
#define GLFW_KEY_CYRILLIC_TSE 245 /* Ц */
|
||||
#define GLFW_KEY_CYRILLIC_CHE 246 /* Ч */
|
||||
#define GLFW_KEY_CYRILLIC_SHA 247 /* Ш */
|
||||
#define GLFW_KEY_CYRILLIC_SHCHA 248 /* Щ */
|
||||
#define GLFW_KEY_CYRILLIC_HARD_SIGN 249 /* Ъ */
|
||||
#define GLFW_KEY_CYRILLIC_YERU 250 /* Ы */
|
||||
#define GLFW_KEY_CYRILLIC_SOFT_SIGN 251 /* Ь */
|
||||
#define GLFW_KEY_CYRILLIC_E 252 /* Э */
|
||||
#define GLFW_KEY_CYRILLIC_YU 253 /* Ю */
|
||||
#define GLFW_KEY_CYRILLIC_YA 254 /* Я */
|
||||
#define GLFW_KEY_CYRILLIC_IO 255 /* Ё */
|
||||
|
||||
#define GLFW_KEY_LAST_PRINTABLE GLFW_KEY_UNDERSCORE
|
||||
#define GLFW_KEY_LAST_PRINTABLE GLFW_KEY_CYRILLIC_IO
|
||||
|
||||
/* Function keys */
|
||||
#define GLFW_KEY_ESCAPE 256
|
||||
|
||||
66
kitty/glfw.c
66
kitty/glfw.c
@ -1234,7 +1234,15 @@ init_glfw(PyObject *m) {
|
||||
|
||||
// --- Printable keys ----------------------------------------------------------
|
||||
ADDC(GLFW_KEY_SPACE);
|
||||
ADDC(GLFW_KEY_EXCLAM);
|
||||
ADDC(GLFW_KEY_DOUBLE_QUOTE);
|
||||
ADDC(GLFW_KEY_NUMBER_SIGN);
|
||||
ADDC(GLFW_KEY_DOLLAR);
|
||||
ADDC(GLFW_KEY_AMPERSAND);
|
||||
ADDC(GLFW_KEY_APOSTROPHE);
|
||||
ADDC(GLFW_KEY_PARENTHESIS_LEFT);
|
||||
ADDC(GLFW_KEY_PARENTHESIS_RIGHT);
|
||||
ADDC(GLFW_KEY_PLUS);
|
||||
ADDC(GLFW_KEY_COMMA);
|
||||
ADDC(GLFW_KEY_MINUS);
|
||||
ADDC(GLFW_KEY_PERIOD);
|
||||
@ -1249,8 +1257,12 @@ init_glfw(PyObject *m) {
|
||||
ADDC(GLFW_KEY_7);
|
||||
ADDC(GLFW_KEY_8);
|
||||
ADDC(GLFW_KEY_9);
|
||||
ADDC(GLFW_KEY_COLON);
|
||||
ADDC(GLFW_KEY_SEMICOLON);
|
||||
ADDC(GLFW_KEY_LESS);
|
||||
ADDC(GLFW_KEY_EQUAL);
|
||||
ADDC(GLFW_KEY_GREATER);
|
||||
ADDC(GLFW_KEY_AT);
|
||||
ADDC(GLFW_KEY_A);
|
||||
ADDC(GLFW_KEY_B);
|
||||
ADDC(GLFW_KEY_C);
|
||||
@ -1280,11 +1292,61 @@ init_glfw(PyObject *m) {
|
||||
ADDC(GLFW_KEY_LEFT_BRACKET);
|
||||
ADDC(GLFW_KEY_BACKSLASH);
|
||||
ADDC(GLFW_KEY_RIGHT_BRACKET);
|
||||
ADDC(GLFW_KEY_UNDERSCORE);
|
||||
ADDC(GLFW_KEY_GRAVE_ACCENT);
|
||||
ADDC(GLFW_KEY_WORLD_1);
|
||||
ADDC(GLFW_KEY_WORLD_2);
|
||||
ADDC(GLFW_KEY_PLUS);
|
||||
ADDC(GLFW_KEY_UNDERSCORE);
|
||||
ADDC(GLFW_KEY_PARAGRAPH);
|
||||
ADDC(GLFW_KEY_MASCULINE);
|
||||
ADDC(GLFW_KEY_A_GRAVE);
|
||||
ADDC(GLFW_KEY_A_DIAERESIS);
|
||||
ADDC(GLFW_KEY_A_RING);
|
||||
ADDC(GLFW_KEY_AE);
|
||||
ADDC(GLFW_KEY_C_CEDILLA);
|
||||
ADDC(GLFW_KEY_E_GRAVE);
|
||||
ADDC(GLFW_KEY_E_ACUTE);
|
||||
ADDC(GLFW_KEY_I_GRAVE);
|
||||
ADDC(GLFW_KEY_N_TILDE);
|
||||
ADDC(GLFW_KEY_O_GRAVE);
|
||||
ADDC(GLFW_KEY_O_DIAERESIS);
|
||||
ADDC(GLFW_KEY_O_SLASH);
|
||||
ADDC(GLFW_KEY_U_GRAVE);
|
||||
ADDC(GLFW_KEY_U_DIAERESIS);
|
||||
ADDC(GLFW_KEY_S_SHARP);
|
||||
ADDC(GLFW_KEY_CYRILLIC_A);
|
||||
ADDC(GLFW_KEY_CYRILLIC_BE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_VE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_GHE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_DE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_IE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_ZHE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_ZE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_I);
|
||||
ADDC(GLFW_KEY_CYRILLIC_SHORT_I);
|
||||
ADDC(GLFW_KEY_CYRILLIC_KA);
|
||||
ADDC(GLFW_KEY_CYRILLIC_EL);
|
||||
ADDC(GLFW_KEY_CYRILLIC_EM);
|
||||
ADDC(GLFW_KEY_CYRILLIC_EN);
|
||||
ADDC(GLFW_KEY_CYRILLIC_O);
|
||||
ADDC(GLFW_KEY_CYRILLIC_PE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_ER);
|
||||
ADDC(GLFW_KEY_CYRILLIC_ES);
|
||||
ADDC(GLFW_KEY_CYRILLIC_TE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_U);
|
||||
ADDC(GLFW_KEY_CYRILLIC_EF);
|
||||
ADDC(GLFW_KEY_CYRILLIC_HA);
|
||||
ADDC(GLFW_KEY_CYRILLIC_TSE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_CHE);
|
||||
ADDC(GLFW_KEY_CYRILLIC_SHA);
|
||||
ADDC(GLFW_KEY_CYRILLIC_SHCHA);
|
||||
ADDC(GLFW_KEY_CYRILLIC_HARD_SIGN);
|
||||
ADDC(GLFW_KEY_CYRILLIC_YERU);
|
||||
ADDC(GLFW_KEY_CYRILLIC_SOFT_SIGN);
|
||||
ADDC(GLFW_KEY_CYRILLIC_E);
|
||||
ADDC(GLFW_KEY_CYRILLIC_YU);
|
||||
ADDC(GLFW_KEY_CYRILLIC_YA);
|
||||
ADDC(GLFW_KEY_CYRILLIC_IO);
|
||||
ADDC(GLFW_KEY_LAST_PRINTABLE);
|
||||
|
||||
// --- Function keys -----------------------------------------------------------
|
||||
ADDC(GLFW_KEY_ESCAPE);
|
||||
|
||||
144
kitty/key_encoding.py
generated
144
kitty/key_encoding.py
generated
@ -131,11 +131,80 @@ ENCODING = {
|
||||
'Z': 'r',
|
||||
'PLUS': 'Bi',
|
||||
'UNDERSCORE': 'Bj',
|
||||
'MENU': 'Bk'
|
||||
'MENU': 'Bk',
|
||||
'EXCLAM': 'Bl',
|
||||
'DOUBLE QUOTE': 'Bm',
|
||||
'NUMBER SIGN': 'Bn',
|
||||
'DOLLAR': 'Bo',
|
||||
'AMPERSAND': 'Bp',
|
||||
'PARENTHESIS LEFT': 'Bq',
|
||||
'PARENTHESIS RIGHT': 'Br',
|
||||
'COLON': 'Bs',
|
||||
'LESS': 'Bt',
|
||||
'GREATER': 'Bu',
|
||||
'AT': 'Bv',
|
||||
'PARAGRAPH': 'Bw',
|
||||
'MASCULINE': 'Bx',
|
||||
'A GRAVE': 'By',
|
||||
'A DIAERESIS': 'Bz',
|
||||
'A RING': 'B0',
|
||||
'AE': 'B1',
|
||||
'C CEDILLA': 'B2',
|
||||
'E GRAVE': 'B3',
|
||||
'E ACUTE': 'B4',
|
||||
'I GRAVE': 'B5',
|
||||
'N TILDE': 'B6',
|
||||
'O GRAVE': 'B7',
|
||||
'O DIAERESIS': 'B8',
|
||||
'O SLASH': 'B9',
|
||||
'U GRAVE': 'B.',
|
||||
'U DIAERESIS': 'B-',
|
||||
'S SHARP': 'B:',
|
||||
'CYRILLIC A': 'B+',
|
||||
'CYRILLIC BE': 'B=',
|
||||
'CYRILLIC VE': 'B^',
|
||||
'CYRILLIC GHE': 'B!',
|
||||
'CYRILLIC DE': 'B/',
|
||||
'CYRILLIC IE': 'B*',
|
||||
'CYRILLIC ZHE': 'B?',
|
||||
'CYRILLIC ZE': 'B&',
|
||||
'CYRILLIC I': 'B<',
|
||||
'CYRILLIC SHORT I': 'B>',
|
||||
'CYRILLIC KA': 'B(',
|
||||
'CYRILLIC EL': 'B)',
|
||||
'CYRILLIC EM': 'B[',
|
||||
'CYRILLIC EN': 'B]',
|
||||
'CYRILLIC O': 'B{',
|
||||
'CYRILLIC PE': 'B}',
|
||||
'CYRILLIC ER': 'B@',
|
||||
'CYRILLIC ES': 'B%',
|
||||
'CYRILLIC TE': 'B$',
|
||||
'CYRILLIC U': 'B#',
|
||||
'CYRILLIC EF': 'CA',
|
||||
'CYRILLIC HA': 'CB',
|
||||
'CYRILLIC TSE': 'CC',
|
||||
'CYRILLIC CHE': 'CD',
|
||||
'CYRILLIC SHA': 'CE',
|
||||
'CYRILLIC SHCHA': 'CF',
|
||||
'CYRILLIC HARD SIGN': 'CG',
|
||||
'CYRILLIC YERU': 'CH',
|
||||
'CYRILLIC SOFT SIGN': 'CI',
|
||||
'CYRILLIC E': 'CJ',
|
||||
'CYRILLIC YU': 'CK',
|
||||
'CYRILLIC YA': 'CL',
|
||||
'CYRILLIC IO': 'CM'
|
||||
}
|
||||
KEY_MAP = {
|
||||
32: 'A',
|
||||
33: 'Bl',
|
||||
34: 'Bm',
|
||||
35: 'Bn',
|
||||
36: 'Bo',
|
||||
38: 'Bp',
|
||||
39: 'B',
|
||||
40: 'Bq',
|
||||
41: 'Br',
|
||||
43: 'Bi',
|
||||
44: 'C',
|
||||
45: 'D',
|
||||
46: 'E',
|
||||
@ -150,8 +219,12 @@ KEY_MAP = {
|
||||
55: 'N',
|
||||
56: 'O',
|
||||
57: 'P',
|
||||
58: 'Bs',
|
||||
59: 'Q',
|
||||
60: 'Bt',
|
||||
61: 'R',
|
||||
62: 'Bu',
|
||||
64: 'Bv',
|
||||
65: 'S',
|
||||
66: 'T',
|
||||
67: 'U',
|
||||
@ -181,11 +254,60 @@ KEY_MAP = {
|
||||
91: 's',
|
||||
92: 't',
|
||||
93: 'u',
|
||||
95: 'Bj',
|
||||
96: 'v',
|
||||
161: 'w',
|
||||
162: 'x',
|
||||
163: 'Bi',
|
||||
164: 'Bj',
|
||||
167: 'Bw',
|
||||
186: 'Bx',
|
||||
192: 'By',
|
||||
196: 'Bz',
|
||||
197: 'B0',
|
||||
198: 'B1',
|
||||
199: 'B2',
|
||||
200: 'B3',
|
||||
201: 'B4',
|
||||
204: 'B5',
|
||||
209: 'B6',
|
||||
210: 'B7',
|
||||
214: 'B8',
|
||||
216: 'B9',
|
||||
217: 'B.',
|
||||
220: 'B-',
|
||||
222: 'B:',
|
||||
223: 'B+',
|
||||
224: 'B=',
|
||||
225: 'B^',
|
||||
226: 'B!',
|
||||
227: 'B/',
|
||||
228: 'B*',
|
||||
229: 'B?',
|
||||
230: 'B&',
|
||||
231: 'B<',
|
||||
232: 'B>',
|
||||
233: 'B(',
|
||||
234: 'B)',
|
||||
235: 'B[',
|
||||
236: 'B]',
|
||||
237: 'B{',
|
||||
238: 'B}',
|
||||
239: 'B@',
|
||||
240: 'B%',
|
||||
241: 'B$',
|
||||
242: 'B#',
|
||||
243: 'CA',
|
||||
244: 'CB',
|
||||
245: 'CC',
|
||||
246: 'CD',
|
||||
247: 'CE',
|
||||
248: 'CF',
|
||||
249: 'CG',
|
||||
250: 'CH',
|
||||
251: 'CI',
|
||||
252: 'CJ',
|
||||
253: 'CK',
|
||||
254: 'CL',
|
||||
255: 'CM',
|
||||
256: 'y',
|
||||
257: 'z',
|
||||
258: '0',
|
||||
@ -259,7 +381,11 @@ KEY_MAP = {
|
||||
}
|
||||
# END_ENCODING }}}
|
||||
|
||||
text_keys = string.ascii_uppercase + string.ascii_lowercase + string.digits + '`~!@#$%^&*()_-+=[{]}\\|<,>./?;:\'" '
|
||||
text_keys = (
|
||||
string.ascii_uppercase + string.ascii_lowercase + string.digits +
|
||||
'`~!@#$%^&*()_-+=[{]}\\|<,>./?;:\'" '
|
||||
'ÄäÖöÜüß§ºàåæçèéìñòøùабвгдежзийклмнопрстуфхцчшщъыьэюяё'
|
||||
)
|
||||
|
||||
|
||||
def text_match(key):
|
||||
@ -297,11 +423,11 @@ def update_encoding():
|
||||
key_map = {}
|
||||
i = len(ans)
|
||||
for k in sorted(keys, key=lambda k: getattr(defines, k)):
|
||||
if k in ('GLFW_KEY_LAST', 'GLFW_KEY_LAST_PRINTABLE'):
|
||||
continue
|
||||
val = getattr(defines, k)
|
||||
name = symbolic_name(k)
|
||||
if val <= defines.GLFW_KEY_LAST and name not in (
|
||||
'LAST', 'LAST_PRINTABLE'
|
||||
) and val != defines.GLFW_KEY_UNKNOWN:
|
||||
if val <= defines.GLFW_KEY_LAST and val != defines.GLFW_KEY_UNKNOWN:
|
||||
if name not in ans:
|
||||
ans[name] = encode(i)
|
||||
i += 1
|
||||
@ -348,9 +474,7 @@ for key_name, enc in ENCODING.items():
|
||||
key_name = key_name.replace(' ', '_')
|
||||
g[key_name] = config_key_map[key_name] = key_name
|
||||
key_rmap[enc] = key_name
|
||||
config_key_map.update({
|
||||
k: g[v] for k, v in key_name_aliases.items()
|
||||
})
|
||||
config_key_map.update({k: g[v] for k, v in key_name_aliases.items()})
|
||||
|
||||
enter_key = KeyEvent(PRESS, 0, g['ENTER'])
|
||||
backspace_key = KeyEvent(PRESS, 0, g['BACKSPACE'])
|
||||
|
||||
@ -33,6 +33,58 @@ key_name_aliases = {
|
||||
'ARROWDOWN': 'DOWN',
|
||||
'ARROWRIGHT': 'RIGHT',
|
||||
'ARROWLEFT': 'LEFT',
|
||||
|
||||
'§': 'PARAGRAPH',
|
||||
'º': 'MASCULINE',
|
||||
'À': 'A_GRAVE',
|
||||
'Ä': 'A_DIAERESIS',
|
||||
'Å': 'A_RING',
|
||||
'Æ': 'AE',
|
||||
'Ç': 'C_CEDILLA',
|
||||
'È': 'E_GRAVE',
|
||||
'É': 'E_ACUTE',
|
||||
'Ì': 'I_GRAVE',
|
||||
'Ñ': 'N_TILDE',
|
||||
'Ò': 'O_GRAVE',
|
||||
'Ö': 'O_DIAERESIS',
|
||||
'Ø': 'O_SLASH',
|
||||
'Ù': 'U_GRAVE',
|
||||
'Ü': 'U_DIAERESIS',
|
||||
'SS': 'S_SHARP', # 'ß'.upper() == 'SS'
|
||||
'А': 'CYRILLIC_A',
|
||||
'Б': 'CYRILLIC_BE',
|
||||
'В': 'CYRILLIC_VE',
|
||||
'Г': 'CYRILLIC_GHE',
|
||||
'Д': 'CYRILLIC_DE',
|
||||
'Е': 'CYRILLIC_IE',
|
||||
'Ж': 'CYRILLIC_ZHE',
|
||||
'З': 'CYRILLIC_ZE',
|
||||
'И': 'CYRILLIC_I',
|
||||
'Й': 'CYRILLIC_SHORT_I',
|
||||
'К': 'CYRILLIC_KA',
|
||||
'Л': 'CYRILLIC_EL',
|
||||
'М': 'CYRILLIC_EM',
|
||||
'Н': 'CYRILLIC_EN',
|
||||
'О': 'CYRILLIC_O',
|
||||
'П': 'CYRILLIC_PE',
|
||||
'Р': 'CYRILLIC_ER',
|
||||
'С': 'CYRILLIC_ES',
|
||||
'Т': 'CYRILLIC_TE',
|
||||
'У': 'CYRILLIC_U',
|
||||
'Ф': 'CYRILLIC_EF',
|
||||
'Х': 'CYRILLIC_HA',
|
||||
'Ц': 'CYRILLIC_TSE',
|
||||
'Ч': 'CYRILLIC_CHE',
|
||||
'Ш': 'CYRILLIC_SHA',
|
||||
'Щ': 'CYRILLIC_SHCHA',
|
||||
'Ъ': 'CYRILLIC_HARD_SIGN',
|
||||
'Ы': 'CYRILLIC_YERU',
|
||||
'Ь': 'CYRILLIC_SOFT_SIGN',
|
||||
'Э': 'CYRILLIC_E',
|
||||
'Ю': 'CYRILLIC_YU',
|
||||
'Я': 'CYRILLIC_YA',
|
||||
'Ё': 'CYRILLIC_IO'
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
27017
kitty/keys.h
generated
27017
kitty/keys.h
generated
File diff suppressed because it is too large
Load Diff
@ -161,7 +161,7 @@ action_map = {
|
||||
def extended_key_event(key, mods, action):
|
||||
if key >= defines.GLFW_KEY_LAST or key == defines.GLFW_KEY_UNKNOWN or (
|
||||
# Shifted printable key should be handled by on_text_input()
|
||||
mods <= defines.GLFW_MOD_SHIFT and 32 <= key <= 126
|
||||
mods <= defines.GLFW_MOD_SHIFT and defines.GLFW_KEY_SPACE <= key <= defines.GLFW_KEY_LAST_PRINTABLE
|
||||
):
|
||||
return b''
|
||||
if mods == 0 and key in (
|
||||
@ -304,7 +304,7 @@ def generate_key_table_impl(w):
|
||||
def key_name(k):
|
||||
return k[len('GLFW_KEY_'):]
|
||||
|
||||
keys = {v: k for k, v in vars(defines).items() if k.startswith('GLFW_KEY_') and k not in {'GLFW_KEY_LAST', 'GLFW_KEY_UNKNOWN'}}
|
||||
keys = {v: k for k, v in vars(defines).items() if k.startswith('GLFW_KEY_') and k not in {'GLFW_KEY_LAST', 'GLFW_KEY_LAST_PRINTABLE', 'GLFW_KEY_UNKNOWN'}}
|
||||
key_rmap = []
|
||||
for i in range(number_of_keys):
|
||||
k = keys.get(i)
|
||||
@ -314,7 +314,7 @@ def generate_key_table_impl(w):
|
||||
w('%d, /* %s */' % (key_count, key_name(k)))
|
||||
key_rmap.append(i)
|
||||
key_count += 1
|
||||
if key_count > 128:
|
||||
if key_count > 256:
|
||||
raise OverflowError('Too many keys')
|
||||
w('};\n')
|
||||
w('static inline const char* key_name(int key) { switch(key) {')
|
||||
@ -354,7 +354,7 @@ def generate_key_table_impl(w):
|
||||
ind('case 0x{:x}:'.format(mods))
|
||||
i += 1
|
||||
if key_bytes:
|
||||
ind('switch(key & 0x7f) { default: return NULL;')
|
||||
ind('switch(key & 0xff) { default: return NULL;')
|
||||
i += 1
|
||||
for key, (data, glfw_key) in key_bytes.items():
|
||||
ind('case {}: // {}'.format(key, key_name(keys[glfw_key])))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user