From 035f5805ad5150a25b644513eff2bd63b2a0b833 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sat, 30 Sep 2017 22:09:25 -0400 Subject: [PATCH] Define many more keys --- src/gui/jtk/Jtk_event.cc | 107 ++++++++++++++++++++++++++++++++++++- src/gui/jtk/Jtk_keys.h | 112 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 214 insertions(+), 5 deletions(-) diff --git a/src/gui/jtk/Jtk_event.cc b/src/gui/jtk/Jtk_event.cc index 4efff2a..8010053 100644 --- a/src/gui/jtk/Jtk_event.cc +++ b/src/gui/jtk/Jtk_event.cc @@ -45,7 +45,112 @@ static bool ProcessXKeyEvent(XEvent * x_event, Jtk_Event * event) { switch (keysym) { - case XK_F1: event->key.key = JTK_KEY_F1; break; + case XK_F1: event->key.key = JTK_KEY_F1; break; + case XK_F2: event->key.key = JTK_KEY_F2; break; + case XK_F3: event->key.key = JTK_KEY_F3; break; + case XK_F4: event->key.key = JTK_KEY_F4; break; + case XK_F5: event->key.key = JTK_KEY_F5; break; + case XK_F6: event->key.key = JTK_KEY_F6; break; + case XK_F7: event->key.key = JTK_KEY_F7; break; + case XK_F8: event->key.key = JTK_KEY_F8; break; + case XK_F9: event->key.key = JTK_KEY_F9; break; + case XK_F10: event->key.key = JTK_KEY_F10; break; + case XK_F11: event->key.key = JTK_KEY_F11; break; + case XK_F12: event->key.key = JTK_KEY_F12; break; + case XK_F13: event->key.key = JTK_KEY_F13; break; + case XK_F14: event->key.key = JTK_KEY_F14; break; + case XK_F15: event->key.key = JTK_KEY_F15; break; + case XK_F16: event->key.key = JTK_KEY_F16; break; + case XK_F17: event->key.key = JTK_KEY_F17; break; + case XK_F18: event->key.key = JTK_KEY_F18; break; + case XK_F19: event->key.key = JTK_KEY_F19; break; + case XK_F20: event->key.key = JTK_KEY_F20; break; + case XK_F21: event->key.key = JTK_KEY_F21; break; + case XK_F22: event->key.key = JTK_KEY_F22; break; + case XK_F23: event->key.key = JTK_KEY_F23; break; + case XK_F24: event->key.key = JTK_KEY_F24; break; + case XK_F25: event->key.key = JTK_KEY_F25; break; + case XK_F26: event->key.key = JTK_KEY_F26; break; + case XK_F27: event->key.key = JTK_KEY_F27; break; + case XK_F28: event->key.key = JTK_KEY_F28; break; + case XK_F29: event->key.key = JTK_KEY_F29; break; + case XK_F30: event->key.key = JTK_KEY_F30; break; + case XK_F31: event->key.key = JTK_KEY_F31; break; + + case XK_Shift_L: event->key.key = JTK_KEY_SHIFT_L; break; + case XK_Shift_R: event->key.key = JTK_KEY_SHIFT_R; break; + case XK_Control_L: event->key.key = JTK_KEY_CTRL_L; break; + case XK_Control_R: event->key.key = JTK_KEY_CTRL_R; break; + case XK_Caps_Lock: event->key.key = JTK_KEY_CAPS_LOCK; break; + case XK_Shift_Lock: event->key.key = JTK_KEY_SHIFT_LOCK;break; + + case XK_Meta_L: event->key.key = JTK_KEY_META_L; break; + case XK_Meta_R: event->key.key = JTK_KEY_META_R; break; + case XK_Alt_L: event->key.key = JTK_KEY_ALT_L; break; + case XK_Alt_R: event->key.key = JTK_KEY_ALT_R; break; + case XK_Super_L: event->key.key = JTK_KEY_SUPER_L; break; + case XK_Super_R: event->key.key = JTK_KEY_SUPER_R; break; + + case XK_Home: event->key.key = JTK_KEY_HOME; break; + case XK_Left: event->key.key = JTK_KEY_LEFT; break; + case XK_Up: event->key.key = JTK_KEY_UP; break; + case XK_Right: event->key.key = JTK_KEY_RIGHT; break; + case XK_Down: event->key.key = JTK_KEY_DOWN; break; + case XK_Page_Up: event->key.key = JTK_KEY_PAGE_UP; break; + case XK_Page_Down: event->key.key = JTK_KEY_PAGE_DOWN; break; + case XK_End: event->key.key = JTK_KEY_END; break; + case XK_Begin: event->key.key = JTK_KEY_BEGIN; break; + + case XK_Select: event->key.key = JTK_KEY_SELECT; break; + case XK_Print: event->key.key = JTK_KEY_PRINT; break; + case XK_Execute: event->key.key = JTK_KEY_EXECUTE; break; + case XK_Insert: event->key.key = JTK_KEY_INSERT; break; + case XK_Undo: event->key.key = JTK_KEY_UNDO; break; + case XK_Redo: event->key.key = JTK_KEY_REDO; break; + case XK_Menu: event->key.key = JTK_KEY_MENU; break; + case XK_Find: event->key.key = JTK_KEY_FIND; break; + case XK_Cancel: event->key.key = JTK_KEY_CANCEL; break; + case XK_Help: event->key.key = JTK_KEY_HELP; break; + case XK_Break: event->key.key = JTK_KEY_BREAK; break; + case XK_Num_Lock: event->key.key = JTK_KEY_NUM_LOCK; break; + + case XK_KP_Space: event->key.key = JTK_KEY_KP_SPACE; break; + case XK_KP_Tab: event->key.key = JTK_KEY_KP_TAB; break; + case XK_KP_Enter: event->key.key = JTK_KEY_KP_ENTER; break; + case XK_KP_F1: event->key.key = JTK_KEY_KP_F1; break; + case XK_KP_F2: event->key.key = JTK_KEY_KP_F2; break; + case XK_KP_F3: event->key.key = JTK_KEY_KP_F3; break; + case XK_KP_F4: event->key.key = JTK_KEY_KP_F4; break; + case XK_KP_Home: event->key.key = JTK_KEY_KP_HOME; break; + case XK_KP_Left: event->key.key = JTK_KEY_KP_LEFT; break; + case XK_KP_Up: event->key.key = JTK_KEY_KP_UP; break; + case XK_KP_Right: event->key.key = JTK_KEY_KP_RIGHT; break; + case XK_KP_Down: event->key.key = JTK_KEY_KP_DOWN; break; + case XK_KP_Page_Up: event->key.key = JTK_KEY_KP_PAGE_UP; break; + case XK_KP_Page_Down: event->key.key = JTK_KEY_KP_PAGE_DOWN; break; + case XK_KP_End: event->key.key = JTK_KEY_KP_END; break; + case XK_KP_Begin: event->key.key = JTK_KEY_KP_BEGIN; break; + case XK_KP_Insert: event->key.key = JTK_KEY_KP_INSERT; break; + case XK_KP_Delete: event->key.key = JTK_KEY_KP_DELETE; break; + case XK_KP_Equal: event->key.key = JTK_KEY_KP_EQUAL; break; + case XK_KP_Multiply: event->key.key = JTK_KEY_KP_MULTIPLY; break; + case XK_KP_Add: event->key.key = JTK_KEY_KP_ADD; break; + case XK_KP_Separator: event->key.key = JTK_KEY_KP_SEPARATOR; break; + case XK_KP_Subtract: event->key.key = JTK_KEY_KP_SUBTRACT; break; + case XK_KP_Decimal: event->key.key = JTK_KEY_KP_DECIMAL; break; + case XK_KP_Divide: event->key.key = JTK_KEY_KP_DIVIDE; break; + + case XK_KP_0: event->key.key = JTK_KEY_KP_0; break; + case XK_KP_1: event->key.key = JTK_KEY_KP_1; break; + case XK_KP_2: event->key.key = JTK_KEY_KP_2; break; + case XK_KP_3: event->key.key = JTK_KEY_KP_3; break; + case XK_KP_4: event->key.key = JTK_KEY_KP_4; break; + case XK_KP_5: event->key.key = JTK_KEY_KP_5; break; + case XK_KP_6: event->key.key = JTK_KEY_KP_6; break; + case XK_KP_7: event->key.key = JTK_KEY_KP_7; break; + case XK_KP_8: event->key.key = JTK_KEY_KP_8; break; + case XK_KP_9: event->key.key = JTK_KEY_KP_9; break; + default: return false; } diff --git a/src/gui/jtk/Jtk_keys.h b/src/gui/jtk/Jtk_keys.h index f4dc28c..3141d18 100644 --- a/src/gui/jtk/Jtk_keys.h +++ b/src/gui/jtk/Jtk_keys.h @@ -1,10 +1,114 @@ #ifndef JTK_KEYS_H #define JTK_KEYS_H -#define JTK_KEY_MODS_SHIFT 0x1u -#define JTK_KEY_MODS_LOCK 0x2u -#define JTK_KEY_MODS_CTRL 0x4u +#define JTK_KEY_MODS_SHIFT 0x1u +#define JTK_KEY_MODS_LOCK 0x2u +#define JTK_KEY_MODS_CTRL 0x4u -#define JTK_KEY_F1 0xFF000001u +#define JTK_KEY_F1 0xFF000001u +#define JTK_KEY_F2 0xFF000002u +#define JTK_KEY_F3 0xFF000003u +#define JTK_KEY_F4 0xFF000004u +#define JTK_KEY_F5 0xFF000005u +#define JTK_KEY_F6 0xFF000006u +#define JTK_KEY_F7 0xFF000007u +#define JTK_KEY_F8 0xFF000008u +#define JTK_KEY_F9 0xFF000009u +#define JTK_KEY_F10 0xFF00000Au +#define JTK_KEY_F11 0xFF00000Bu +#define JTK_KEY_F12 0xFF00000Cu +#define JTK_KEY_F13 0xFF00000Du +#define JTK_KEY_F14 0xFF00000Eu +#define JTK_KEY_F15 0xFF00000Fu +#define JTK_KEY_F16 0xFF000010u +#define JTK_KEY_F17 0xFF000011u +#define JTK_KEY_F18 0xFF000012u +#define JTK_KEY_F19 0xFF000013u +#define JTK_KEY_F20 0xFF000014u +#define JTK_KEY_F21 0xFF000015u +#define JTK_KEY_F22 0xFF000016u +#define JTK_KEY_F23 0xFF000017u +#define JTK_KEY_F24 0xFF000018u +#define JTK_KEY_F25 0xFF000019u +#define JTK_KEY_F26 0xFF00001Au +#define JTK_KEY_F27 0xFF00001Bu +#define JTK_KEY_F28 0xFF00001Cu +#define JTK_KEY_F29 0xFF00001Du +#define JTK_KEY_F30 0xFF00001Eu +#define JTK_KEY_F31 0xFF00001Fu + +#define JTK_KEY_SHIFT_L 0xFF000030u +#define JTK_KEY_SHIFT_R 0xFF000031u +#define JTK_KEY_CTRL_L 0xFF000032u +#define JTK_KEY_CTRL_R 0xFF000033u +#define JTK_KEY_CAPS_LOCK 0xFF000034u +#define JTK_KEY_SHIFT_LOCK 0xFF000035u + +#define JTK_KEY_META_L 0xFF000036u +#define JTK_KEY_META_R 0xFF000037u +#define JTK_KEY_ALT_L 0xFF000038u +#define JTK_KEY_ALT_R 0xFF000039u +#define JTK_KEY_SUPER_L 0xFF00003Au +#define JTK_KEY_SUPER_R 0xFF00003Bu + +#define JTK_KEY_HOME 0xFF00003Cu +#define JTK_KEY_LEFT 0xFF00003Du +#define JTK_KEY_UP 0xFF00003Eu +#define JTK_KEY_RIGHT 0xFF00003Fu +#define JTK_KEY_DOWN 0xFF000040u +#define JTK_KEY_PAGE_UP 0xFF000042u +#define JTK_KEY_PAGE_DOWN 0xFF000044u +#define JTK_KEY_END 0xFF000045u +#define JTK_KEY_BEGIN 0xFF000046u + +#define JTK_KEY_SELECT 0xFF000047u +#define JTK_KEY_PRINT 0xFF000048u +#define JTK_KEY_EXECUTE 0xFF000049u +#define JTK_KEY_INSERT 0xFF00004Au +#define JTK_KEY_UNDO 0xFF00004Bu +#define JTK_KEY_REDO 0xFF00004Cu +#define JTK_KEY_MENU 0xFF00004Du +#define JTK_KEY_FIND 0xFF00004Eu +#define JTK_KEY_CANCEL 0xFF00004Fu +#define JTK_KEY_HELP 0xFF000050u +#define JTK_KEY_BREAK 0xFF000051u +#define JTK_KEY_NUM_LOCK 0xFF000054u + +#define JTK_KEY_KP_SPACE 0xFF000055u +#define JTK_KEY_KP_TAB 0xFF000056u +#define JTK_KEY_KP_ENTER 0xFF000057u +#define JTK_KEY_KP_F1 0xFF000058u +#define JTK_KEY_KP_F2 0xFF000059u +#define JTK_KEY_KP_F3 0xFF00005Au +#define JTK_KEY_KP_F4 0xFF00005Bu +#define JTK_KEY_KP_HOME 0xFF00005Cu +#define JTK_KEY_KP_LEFT 0xFF00005Du +#define JTK_KEY_KP_UP 0xFF00005Eu +#define JTK_KEY_KP_RIGHT 0xFF00005Fu +#define JTK_KEY_KP_DOWN 0xFF000060u +#define JTK_KEY_KP_PAGE_UP 0xFF000062u +#define JTK_KEY_KP_PAGE_DOWN 0xFF000064u +#define JTK_KEY_KP_END 0xFF000065u +#define JTK_KEY_KP_BEGIN 0xFF000066u +#define JTK_KEY_KP_INSERT 0xFF000067u +#define JTK_KEY_KP_DELETE 0xFF000068u +#define JTK_KEY_KP_EQUAL 0xFF000069u +#define JTK_KEY_KP_MULTIPLY 0xFF00006Au +#define JTK_KEY_KP_ADD 0xFF00006Bu +#define JTK_KEY_KP_SEPARATOR 0xFF00006Cu +#define JTK_KEY_KP_SUBTRACT 0xFF00006Du +#define JTK_KEY_KP_DECIMAL 0xFF00006Eu +#define JTK_KEY_KP_DIVIDE 0xFF00006Fu + +#define JTK_KEY_KP_0 0xFF000070u +#define JTK_KEY_KP_1 0xFF000071u +#define JTK_KEY_KP_2 0xFF000072u +#define JTK_KEY_KP_3 0xFF000073u +#define JTK_KEY_KP_4 0xFF000074u +#define JTK_KEY_KP_5 0xFF000075u +#define JTK_KEY_KP_6 0xFF000076u +#define JTK_KEY_KP_7 0xFF000077u +#define JTK_KEY_KP_8 0xFF000078u +#define JTK_KEY_KP_9 0xFF000079u #endif