#pragma once #include "nes/common/types.hh" namespace nes::app { class modifier_mask; enum class key { digit_0, digit_1, digit_2, digit_3, digit_4, digit_5, digit_6, digit_7, digit_8, digit_9, letter_a, letter_b, letter_c, letter_d, letter_e, letter_f, letter_g, letter_h, letter_i, letter_j, letter_k, letter_l, letter_m, letter_n, letter_o, letter_p, letter_q, letter_r, letter_s, letter_t, letter_u, letter_v, letter_w, letter_x, letter_y, letter_z, escape, dash, equal, backspace, tab, enter, semicolon, apostrophe, backslash, comma, period, slash, space, caps_lock, bracket_open, bracket_close, control_left, control_right, shift_left, shift_right, alt_left, alt_right, arrow_left, arrow_right, arrow_up, arrow_down, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, }; inline constexpr auto key_count = static_cast(key::f12) + 1; auto to_ascii(key, modifier_mask) -> char; } // namespace nes::app