summaryrefslogtreecommitdiff
path: root/lib/nes/app/input/key.hh
blob: 3156e65c5f7d31ec4c415da26e20075896d7cc11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#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<u32>(key::f12) + 1;

	auto to_ascii(key, modifier_mask) -> char;
} // namespace nes::app