3#ifdef MAYAFLUX_PLATFORM_LINUX
11IO::Keys from_xkb_keysym(xkb_keysym_t sym)
noexcept
13 if (sym >= 0x0020 && sym <= 0x007e) {
14 if (sym >=
'a' && sym <=
'z')
16 return static_cast<IO::Keys>(
static_cast<int16_t
>(sym));
26 case XKB_KEY_BackSpace:
44 case XKB_KEY_Page_Down:
51 case XKB_KEY_Caps_Lock:
53 case XKB_KEY_Scroll_Lock:
55 case XKB_KEY_Num_Lock:
133 case XKB_KEY_KP_Decimal:
135 case XKB_KEY_KP_Divide:
137 case XKB_KEY_KP_Multiply:
139 case XKB_KEY_KP_Subtract:
143 case XKB_KEY_KP_Enter:
145 case XKB_KEY_KP_Equal:
148 case XKB_KEY_Shift_L:
150 case XKB_KEY_Control_L:
154 case XKB_KEY_Super_L:
156 case XKB_KEY_Shift_R:
158 case XKB_KEY_Control_R:
162 case XKB_KEY_Super_R:
176xkb_keysym_t to_xkb_keysym(
IO::Keys key)
noexcept
178 int k =
static_cast<int>(key);
180 if (k >= 0x0020 && k <= 0x007e)
181 return static_cast<xkb_keysym_t
>(k);
186 return XKB_KEY_Escape;
188 return XKB_KEY_Return;
192 return XKB_KEY_BackSpace;
194 return XKB_KEY_Insert;
196 return XKB_KEY_Delete;
199 return XKB_KEY_Right;
208 return XKB_KEY_Page_Up;
210 return XKB_KEY_Page_Down;
217 return XKB_KEY_Caps_Lock;
219 return XKB_KEY_Scroll_Lock;
221 return XKB_KEY_Num_Lock;
223 return XKB_KEY_Print;
225 return XKB_KEY_Pause;
299 return XKB_KEY_KP_Decimal;
301 return XKB_KEY_KP_Divide;
303 return XKB_KEY_KP_Multiply;
305 return XKB_KEY_KP_Subtract;
307 return XKB_KEY_KP_Add;
309 return XKB_KEY_KP_Enter;
311 return XKB_KEY_KP_Equal;
314 return XKB_KEY_Shift_L;
316 return XKB_KEY_Control_L;
318 return XKB_KEY_Alt_L;
320 return XKB_KEY_Super_L;
322 return XKB_KEY_Shift_R;
324 return XKB_KEY_Control_R;
326 return XKB_KEY_Alt_R;
328 return XKB_KEY_Super_R;
333 return XKB_KEY_NoSymbol;
341bool is_valid_xkb_keysym(xkb_keysym_t sym)
noexcept
343 if (sym == XKB_KEY_NoSymbol)
348IO::Keys from_evdev_scancode(uint32_t scancode)
noexcept