diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 23:41:31 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 23:41:31 +0300 |
| commit | 76073fe5fad8799e5850805f2f090af2cb62c741 (patch) | |
| tree | 9658019babe4760a3634bdab4da0731a10e42e68 /include/yasl/keycodes.h | |
| parent | dd1775a9927922c14f8679ccbc4d3ca8d5917e20 (diff) | |
Simplify the public event and CPU API
Applications now need far less ceremony: hello.c is a 20-line loop that
handles REFRESH, CLOSE and QUIT and draws into the surface's own pixels.
- Fold GEOMETRY, STATE and FOCUS into one WINDOW event carrying size,
scale and state; unchanged values send nothing.
- Guarantee REFRESH once a window has a size and after every resize,
never at size zero.
- Merge DROP_HOVER into DROP with over/leave/data actions and give drag
and drop actions enums.
- Keep event strings valid until the next wait and drop
yasl_event_release; empty or failed waits report NONE.
- Replace copy-in presentation with a lent pixel buffer:
yasl_cpu_pixels and yasl_cpu_present.
- Remove yasl_poll_event, yasl_cpu_read_pixels, unused event fields and
comments that restated names.
- Wayland: resize floating windows in request_size instead of reporting
it unsupported, and stop marking new GPU surfaces as Vulkan so
yasl_vulkan_create_surface no longer fails with NATIVE_WINDOW_IN_USE.
Also includes the in-progress public API refactor that was uncommitted
in the tree (removal of the app/loop layer, new surface, GL and Vulkan
entry points).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'include/yasl/keycodes.h')
| -rw-r--r-- | include/yasl/keycodes.h | 271 |
1 files changed, 132 insertions, 139 deletions
diff --git a/include/yasl/keycodes.h b/include/yasl/keycodes.h index d34aeae..afa3eed 100644 --- a/include/yasl/keycodes.h +++ b/include/yasl/keycodes.h @@ -1,149 +1,142 @@ -/** - * @file - * Portable physical keyboard identities, included by yasl/yasl.h. - * Letter/punctuation names describe positions on a US keyboard, regardless of - * active layout or modifiers. Use YASL_EVENT_TEXT for text and codepoint/shifted - * in yasl_key_event for layout labels. These values are neither Unicode nor - * native scancodes; do not derive a character from a key enumerator. - */ +/** @file Physical keys, named by their position on a US keyboard whatever the + * layout. Use TEXT events for typed text and key.codepoint for layout labels. */ #ifndef YASL_KEYCODES_H #define YASL_KEYCODES_H #include <stdint.h> -/** Physical keys. Unrecognized native keys report YASL_KEY_UNKNOWN. */ enum yasl_key : uint32_t { YASL_KEY_UNKNOWN = 0x000, /**< No portable identity; native_code may still identify the key. */ - YASL_KEY_SPACE = 0x020, /**< Space. */ - YASL_KEY_APOSTROPHE = 0x027, /**< Apostrophe. */ - YASL_KEY_COMMA = 0x02c, /**< Comma. */ - YASL_KEY_MINUS = 0x02d, /**< Minus. */ - YASL_KEY_PERIOD = 0x02e, /**< Period. */ - YASL_KEY_SLASH = 0x02f, /**< Slash. */ - YASL_KEY_0 = 0x030, /**< Physical 0 key. */ - YASL_KEY_1 = 0x031, /**< Physical 1 key. */ - YASL_KEY_2 = 0x032, /**< Physical 2 key. */ - YASL_KEY_3 = 0x033, /**< Physical 3 key. */ - YASL_KEY_4 = 0x034, /**< Physical 4 key. */ - YASL_KEY_5 = 0x035, /**< Physical 5 key. */ - YASL_KEY_6 = 0x036, /**< Physical 6 key. */ - YASL_KEY_7 = 0x037, /**< Physical 7 key. */ - YASL_KEY_8 = 0x038, /**< Physical 8 key. */ - YASL_KEY_9 = 0x039, /**< Physical 9 key. */ - YASL_KEY_SEMICOLON = 0x03b, /**< Semicolon. */ - YASL_KEY_EQUAL = 0x03d, /**< Equal. */ - YASL_KEY_A = 0x041, /**< Physical US A position; independent of layout and modifiers. */ - YASL_KEY_B = 0x042, /**< Physical US B position; independent of layout and modifiers. */ - YASL_KEY_C = 0x043, /**< Physical US C position; independent of layout and modifiers. */ - YASL_KEY_D = 0x044, /**< Physical US D position; independent of layout and modifiers. */ - YASL_KEY_E = 0x045, /**< Physical US E position; independent of layout and modifiers. */ - YASL_KEY_F = 0x046, /**< Physical US F position; independent of layout and modifiers. */ - YASL_KEY_G = 0x047, /**< Physical US G position; independent of layout and modifiers. */ - YASL_KEY_H = 0x048, /**< Physical US H position; independent of layout and modifiers. */ - YASL_KEY_I = 0x049, /**< Physical US I position; independent of layout and modifiers. */ - YASL_KEY_J = 0x04a, /**< Physical US J position; independent of layout and modifiers. */ - YASL_KEY_K = 0x04b, /**< Physical US K position; independent of layout and modifiers. */ - YASL_KEY_L = 0x04c, /**< Physical US L position; independent of layout and modifiers. */ - YASL_KEY_M = 0x04d, /**< Physical US M position; independent of layout and modifiers. */ - YASL_KEY_N = 0x04e, /**< Physical US N position; independent of layout and modifiers. */ - YASL_KEY_O = 0x04f, /**< Physical US O position; independent of layout and modifiers. */ - YASL_KEY_P = 0x050, /**< Physical US P position; independent of layout and modifiers. */ - YASL_KEY_Q = 0x051, /**< Physical US Q position; independent of layout and modifiers. */ - YASL_KEY_R = 0x052, /**< Physical US R position; independent of layout and modifiers. */ - YASL_KEY_S = 0x053, /**< Physical US S position; independent of layout and modifiers. */ - YASL_KEY_T = 0x054, /**< Physical US T position; independent of layout and modifiers. */ - YASL_KEY_U = 0x055, /**< Physical US U position; independent of layout and modifiers. */ - YASL_KEY_V = 0x056, /**< Physical US V position; independent of layout and modifiers. */ - YASL_KEY_W = 0x057, /**< Physical US W position; independent of layout and modifiers. */ - YASL_KEY_X = 0x058, /**< Physical US X position; independent of layout and modifiers. */ - YASL_KEY_Y = 0x059, /**< Physical US Y position; independent of layout and modifiers. */ - YASL_KEY_Z = 0x05a, /**< Physical US Z position; independent of layout and modifiers. */ - YASL_KEY_LEFT_BRACKET = 0x05b, /**< Left Bracket. */ - YASL_KEY_BACKSLASH = 0x05c, /**< Backslash. */ - YASL_KEY_RIGHT_BRACKET = 0x05d, /**< Right Bracket. */ - YASL_KEY_GRAVE = 0x060, /**< Grave. */ - YASL_KEY_ESCAPE = 0x100, /**< Escape. */ - YASL_KEY_ENTER = 0x101, /**< Enter. */ - YASL_KEY_TAB = 0x102, /**< Tab. */ - YASL_KEY_BACKSPACE = 0x103, /**< Backspace. */ - YASL_KEY_INSERT = 0x104, /**< Insert. */ - YASL_KEY_DELETE = 0x105, /**< Delete. */ - YASL_KEY_RIGHT = 0x106, /**< Right. */ - YASL_KEY_LEFT = 0x107, /**< Left. */ - YASL_KEY_DOWN = 0x108, /**< Down. */ - YASL_KEY_UP = 0x109, /**< Up. */ - YASL_KEY_PAGE_UP = 0x10a, /**< Page Up. */ - YASL_KEY_PAGE_DOWN = 0x10b, /**< Page Down. */ - YASL_KEY_HOME = 0x10c, /**< Home. */ - YASL_KEY_END = 0x10d, /**< End. */ - YASL_KEY_CAPS_LOCK = 0x10e, /**< Caps Lock. */ - YASL_KEY_SCROLL_LOCK = 0x10f, /**< Scroll Lock. */ - YASL_KEY_NUM_LOCK = 0x110, /**< Num Lock. */ - YASL_KEY_PRINT_SCREEN = 0x111, /**< Print Screen. */ - YASL_KEY_PAUSE = 0x112, /**< Pause. */ - YASL_KEY_ISO_BACKSLASH = 0x113, /**< Iso Backslash. */ - YASL_KEY_YEN = 0x114, /**< Yen. */ - YASL_KEY_RO = 0x115, /**< Ro. */ - YASL_KEY_KANA = 0x116, /**< Kana. */ - YASL_KEY_EISU = 0x117, /**< Eisu. */ - YASL_KEY_CONVERT = 0x118, /**< Convert. */ - YASL_KEY_NONCONVERT = 0x119, /**< Nonconvert. */ - YASL_KEY_F1 = 0x120, /**< Function key F1. */ - YASL_KEY_F2 = 0x121, /**< Function key F2. */ - YASL_KEY_F3 = 0x122, /**< Function key F3. */ - YASL_KEY_F4 = 0x123, /**< Function key F4. */ - YASL_KEY_F5 = 0x124, /**< Function key F5. */ - YASL_KEY_F6 = 0x125, /**< Function key F6. */ - YASL_KEY_F7 = 0x126, /**< Function key F7. */ - YASL_KEY_F8 = 0x127, /**< Function key F8. */ - YASL_KEY_F9 = 0x128, /**< Function key F9. */ - YASL_KEY_F10 = 0x129, /**< Function key F10. */ - YASL_KEY_F11 = 0x12a, /**< Function key F11. */ - YASL_KEY_F12 = 0x12b, /**< Function key F12. */ - YASL_KEY_F13 = 0x12c, /**< Function key F13. */ - YASL_KEY_F14 = 0x12d, /**< Function key F14. */ - YASL_KEY_F15 = 0x12e, /**< Function key F15. */ - YASL_KEY_F16 = 0x12f, /**< Function key F16. */ - YASL_KEY_F17 = 0x130, /**< Function key F17. */ - YASL_KEY_F18 = 0x131, /**< Function key F18. */ - YASL_KEY_F19 = 0x132, /**< Function key F19. */ - YASL_KEY_F20 = 0x133, /**< Function key F20. */ - YASL_KEY_F21 = 0x134, /**< Function key F21. */ - YASL_KEY_F22 = 0x135, /**< Function key F22. */ - YASL_KEY_F23 = 0x136, /**< Function key F23. */ - YASL_KEY_F24 = 0x137, /**< Function key F24. */ - YASL_KEY_F25 = 0x138, /**< Function key F25. */ - YASL_KEY_KP_0 = 0x140, /**< Numeric keypad 0. */ - YASL_KEY_KP_1 = 0x141, /**< Numeric keypad 1. */ - YASL_KEY_KP_2 = 0x142, /**< Numeric keypad 2. */ - YASL_KEY_KP_3 = 0x143, /**< Numeric keypad 3. */ - YASL_KEY_KP_4 = 0x144, /**< Numeric keypad 4. */ - YASL_KEY_KP_5 = 0x145, /**< Numeric keypad 5. */ - YASL_KEY_KP_6 = 0x146, /**< Numeric keypad 6. */ - YASL_KEY_KP_7 = 0x147, /**< Numeric keypad 7. */ - YASL_KEY_KP_8 = 0x148, /**< Numeric keypad 8. */ - YASL_KEY_KP_9 = 0x149, /**< Numeric keypad 9. */ - YASL_KEY_KP_DECIMAL = 0x14a, /**< Numeric keypad decimal. */ - YASL_KEY_KP_DIVIDE = 0x14b, /**< Numeric keypad divide. */ - YASL_KEY_KP_MULTIPLY = 0x14c, /**< Numeric keypad multiply. */ - YASL_KEY_KP_SUBTRACT = 0x14d, /**< Numeric keypad subtract. */ - YASL_KEY_KP_ADD = 0x14e, /**< Numeric keypad add. */ - YASL_KEY_KP_ENTER = 0x14f, /**< Numeric keypad enter. */ - YASL_KEY_KP_EQUAL = 0x150, /**< Numeric keypad equal. */ - YASL_KEY_KP_COMMA = 0x151, /**< Numeric keypad comma. */ - YASL_KEY_KP_CLEAR = 0x152, /**< Numeric keypad clear. */ - YASL_KEY_LEFT_SHIFT = 0x160, /**< Left Shift. */ - YASL_KEY_LEFT_CONTROL = 0x161, /**< Left Control. */ - YASL_KEY_LEFT_ALT = 0x162, /**< Left Alt. */ - YASL_KEY_LEFT_SUPER = 0x163, /**< Left Super. */ - YASL_KEY_RIGHT_SHIFT = 0x164, /**< Right Shift. */ - YASL_KEY_RIGHT_CONTROL = 0x165, /**< Right Control. */ - YASL_KEY_RIGHT_ALT = 0x166, /**< Right Alt. */ - YASL_KEY_RIGHT_SUPER = 0x167, /**< Right Super. */ - YASL_KEY_MENU = 0x168, /**< Menu. */ - YASL_KEY_VOLUME_UP = 0x169, /**< Volume Up. */ - YASL_KEY_VOLUME_DOWN = 0x16a, /**< Volume Down. */ - YASL_KEY_MUTE = 0x16b, /**< Mute. */ + YASL_KEY_SPACE = 0x020, + YASL_KEY_APOSTROPHE = 0x027, + YASL_KEY_COMMA = 0x02c, + YASL_KEY_MINUS = 0x02d, + YASL_KEY_PERIOD = 0x02e, + YASL_KEY_SLASH = 0x02f, + YASL_KEY_0 = 0x030, + YASL_KEY_1 = 0x031, + YASL_KEY_2 = 0x032, + YASL_KEY_3 = 0x033, + YASL_KEY_4 = 0x034, + YASL_KEY_5 = 0x035, + YASL_KEY_6 = 0x036, + YASL_KEY_7 = 0x037, + YASL_KEY_8 = 0x038, + YASL_KEY_9 = 0x039, + YASL_KEY_SEMICOLON = 0x03b, + YASL_KEY_EQUAL = 0x03d, + YASL_KEY_A = 0x041, + YASL_KEY_B = 0x042, + YASL_KEY_C = 0x043, + YASL_KEY_D = 0x044, + YASL_KEY_E = 0x045, + YASL_KEY_F = 0x046, + YASL_KEY_G = 0x047, + YASL_KEY_H = 0x048, + YASL_KEY_I = 0x049, + YASL_KEY_J = 0x04a, + YASL_KEY_K = 0x04b, + YASL_KEY_L = 0x04c, + YASL_KEY_M = 0x04d, + YASL_KEY_N = 0x04e, + YASL_KEY_O = 0x04f, + YASL_KEY_P = 0x050, + YASL_KEY_Q = 0x051, + YASL_KEY_R = 0x052, + YASL_KEY_S = 0x053, + YASL_KEY_T = 0x054, + YASL_KEY_U = 0x055, + YASL_KEY_V = 0x056, + YASL_KEY_W = 0x057, + YASL_KEY_X = 0x058, + YASL_KEY_Y = 0x059, + YASL_KEY_Z = 0x05a, + YASL_KEY_LEFT_BRACKET = 0x05b, + YASL_KEY_BACKSLASH = 0x05c, + YASL_KEY_RIGHT_BRACKET = 0x05d, + YASL_KEY_GRAVE = 0x060, + YASL_KEY_ESCAPE = 0x100, + YASL_KEY_ENTER = 0x101, + YASL_KEY_TAB = 0x102, + YASL_KEY_BACKSPACE = 0x103, + YASL_KEY_INSERT = 0x104, + YASL_KEY_DELETE = 0x105, + YASL_KEY_RIGHT = 0x106, + YASL_KEY_LEFT = 0x107, + YASL_KEY_DOWN = 0x108, + YASL_KEY_UP = 0x109, + YASL_KEY_PAGE_UP = 0x10a, + YASL_KEY_PAGE_DOWN = 0x10b, + YASL_KEY_HOME = 0x10c, + YASL_KEY_END = 0x10d, + YASL_KEY_CAPS_LOCK = 0x10e, + YASL_KEY_SCROLL_LOCK = 0x10f, + YASL_KEY_NUM_LOCK = 0x110, + YASL_KEY_PRINT_SCREEN = 0x111, + YASL_KEY_PAUSE = 0x112, + YASL_KEY_ISO_BACKSLASH = 0x113, + YASL_KEY_YEN = 0x114, + YASL_KEY_RO = 0x115, + YASL_KEY_KANA = 0x116, + YASL_KEY_EISU = 0x117, + YASL_KEY_CONVERT = 0x118, + YASL_KEY_NONCONVERT = 0x119, + YASL_KEY_F1 = 0x120, + YASL_KEY_F2 = 0x121, + YASL_KEY_F3 = 0x122, + YASL_KEY_F4 = 0x123, + YASL_KEY_F5 = 0x124, + YASL_KEY_F6 = 0x125, + YASL_KEY_F7 = 0x126, + YASL_KEY_F8 = 0x127, + YASL_KEY_F9 = 0x128, + YASL_KEY_F10 = 0x129, + YASL_KEY_F11 = 0x12a, + YASL_KEY_F12 = 0x12b, + YASL_KEY_F13 = 0x12c, + YASL_KEY_F14 = 0x12d, + YASL_KEY_F15 = 0x12e, + YASL_KEY_F16 = 0x12f, + YASL_KEY_F17 = 0x130, + YASL_KEY_F18 = 0x131, + YASL_KEY_F19 = 0x132, + YASL_KEY_F20 = 0x133, + YASL_KEY_F21 = 0x134, + YASL_KEY_F22 = 0x135, + YASL_KEY_F23 = 0x136, + YASL_KEY_F24 = 0x137, + YASL_KEY_F25 = 0x138, + YASL_KEY_KP_0 = 0x140, + YASL_KEY_KP_1 = 0x141, + YASL_KEY_KP_2 = 0x142, + YASL_KEY_KP_3 = 0x143, + YASL_KEY_KP_4 = 0x144, + YASL_KEY_KP_5 = 0x145, + YASL_KEY_KP_6 = 0x146, + YASL_KEY_KP_7 = 0x147, + YASL_KEY_KP_8 = 0x148, + YASL_KEY_KP_9 = 0x149, + YASL_KEY_KP_DECIMAL = 0x14a, + YASL_KEY_KP_DIVIDE = 0x14b, + YASL_KEY_KP_MULTIPLY = 0x14c, + YASL_KEY_KP_SUBTRACT = 0x14d, + YASL_KEY_KP_ADD = 0x14e, + YASL_KEY_KP_ENTER = 0x14f, + YASL_KEY_KP_EQUAL = 0x150, + YASL_KEY_KP_COMMA = 0x151, + YASL_KEY_KP_CLEAR = 0x152, + YASL_KEY_LEFT_SHIFT = 0x160, + YASL_KEY_LEFT_CONTROL = 0x161, + YASL_KEY_LEFT_ALT = 0x162, + YASL_KEY_LEFT_SUPER = 0x163, + YASL_KEY_RIGHT_SHIFT = 0x164, + YASL_KEY_RIGHT_CONTROL = 0x165, + YASL_KEY_RIGHT_ALT = 0x166, + YASL_KEY_RIGHT_SUPER = 0x167, + YASL_KEY_MENU = 0x168, + YASL_KEY_VOLUME_UP = 0x169, + YASL_KEY_VOLUME_DOWN = 0x16a, + YASL_KEY_MUTE = 0x16b, }; #endif /* YASL_KEYCODES_H */ |
