1
0
Fork 0
zenolith/src/key.zig

207 lines
3.9 KiB
Zig

/// An enum representing a Key.
/// Based on: https://source.chromium.org/chromium/chromium/src/+/main:ui/events/keycodes/dom/dom_code_data.inc
pub const Keycode = enum {
// Non-USB codes
hyper,
super, // NOT Meta!
@"fn",
fn_lock,
@"suspend",
@"resume",
turbo,
// (Based on) USB Usage Page 0x01: Generic Desktop Page
sleep,
wake_up,
mic_mute_toggle,
display_toggle_int_ext,
// (Based on) USB Usage Page 0x07: Keyboard/Keypad Page
// zig fmt: off
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z,
@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"0",
enter,
escape,
backspace,
tab,
space,
minus,
equal,
bracket_left,
bracket_right,
backslash,
semicolon,
quote,
backquote,
comma,
period,
slash,
caps_lock,
f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
f15, f16, f17, f18, f19, f20, f21, f22, f23, f24,
sysrq, // = PrintScreen
scroll_lock,
pause,
insert,
home,
page_up,
delete,
end,
page_down,
arrow_right,
arrow_left,
arrow_down,
arrow_up,
num_lock,
numpad_divide,
numpad_multiply,
numpad_subtract,
numpad_add,
numpad_equal,
numpad_decimal,
numpad_comma,
numpad_enter,
numpad_backspace,
numpad_paren_left,
numpad_paren_right,
numpad_1,
numpad_2,
numpad_3,
numpad_4,
numpad_5,
numpad_6,
numpad_7,
numpad_8,
numpad_9,
numpad_0,
intl_backslash, // = NonUSBackslash; Not present on US keyboards. Typically near left shift.
intl_hash, // = NonUsHash; Never appears together with backslash on keyboards.
international1, // = IntlRo
international2, // = KanaMode
international3, // = IntlYen
international4, // = Convert
international5, // = NonConvert
international6,
international7,
international8,
international9,
lang1, lang2, lang3, lang4, lang5, lang6, lang7, lang8, lang9,
compose, // = ContextMenu, Application
power,
abort, // = Cancel
open, // = Execute
help,
select,
stop,
again,
undo,
cut,
copy,
paste,
find,
props,
volume_mute,
volume_up,
volume_down,
ctrl_left,
shift_left,
alt_left,
meta_left,
ctrl_right,
shift_right,
alt_right,
meta_right,
mode, // = AltGr
// zig fmt: on
// (Based on) USB Usage Page 0x0c: Consumer Page
info,
closed_caption_toggle,
brightness_up,
brightness_down,
brightness_toggle,
brightness_min,
brightness_max,
brightness_auto,
kbd_backlight_up,
kbd_backlight_down,
kbd_backlight_toggle,
launch_phone,
launch_word_processor,
launch_spreadsheet,
launch_mail,
launch_contacts,
launch_calender,
launch_task_manager,
launch_log,
launch_browser,
launch_explorer, // = LaunchApp1; File Browser
launch_calculator, // = LaunchApp2
launch_control_panel,
log_off,
lock_screen,
program_guide,
exit,
media_play,
media_pause,
media_playpause,
media_stop,
media_record,
media_fast_forward,
media_rewind,
media_track_next,
media_track_prev,
media_last,
media_select,
eject,
browser_search,
browser_home,
browser_back,
browser_forward,
browser_stop,
browser_refresh,
browser_bookmarks,
// Virtual keys that do not have any corresponsing scancode.
ampersand,
asterisk,
at,
caret,
colon,
dollar,
exclaim,
greater,
hash,
paren_left,
less,
percent,
plus,
question,
double_quote,
paren_right,
underscore,
};
/// Modifier keys which may be active at the time of a key event.
pub const Modifiers = struct {
shift: bool = false,
ctrl: bool = false,
alt: bool = false,
meta: bool = false,
mode: bool = false, // = AltGr
};