NAP
keyboard.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 #include <cstdint>
8 #include <utility/dllexport.h>
9 #include <nap/numeric.h>
10 
11 namespace nap
12 {
17 
22  {
23  None = 0x00,
24  Shift = 0x02,
25  Control = 0x04,
26  Alt = 0x08
27  };
28 
32  enum class EKeyCode : int
33  {
34  KEY_UNKNOWN = -1,
35  KEY_RETURN,
36  KEY_ESCAPE,
38  KEY_TAB,
39  KEY_SPACE,
42  KEY_HASH,
44  KEY_DOLLAR,
46  KEY_QUOTE,
52  KEY_PLUS,
53  KEY_COMMA,
54  KEY_MINUS,
55  KEY_PERIOD,
56  KEY_SLASH,
57  KEY_0,
58  KEY_1,
59  KEY_2,
60  KEY_3,
61  KEY_4,
62  KEY_5,
63  KEY_6,
64  KEY_7,
65  KEY_8,
66  KEY_9,
67  KEY_COLON,
69  KEY_LESS,
70  KEY_EQUALS,
73  KEY_AT,
77  KEY_CARET,
80  KEY_a,
81  KEY_b,
82  KEY_c,
83  KEY_d,
84  KEY_e,
85  KEY_f,
86  KEY_g,
87  KEY_h,
88  KEY_i,
89  KEY_j,
90  KEY_k,
91  KEY_l,
92  KEY_m,
93  KEY_n,
94  KEY_o,
95  KEY_p,
96  KEY_q,
97  KEY_r,
98  KEY_s,
99  KEY_t,
100  KEY_u,
101  KEY_v,
102  KEY_w,
103  KEY_x,
104  KEY_y,
105  KEY_z,
106  KEY_CAPSLOCK,
107  KEY_F1,
108  KEY_F2,
109  KEY_F3,
110  KEY_F4,
111  KEY_F5,
112  KEY_F6,
113  KEY_F7,
114  KEY_F8,
115  KEY_F9,
116  KEY_F10,
117  KEY_F11,
118  KEY_F12,
121  KEY_PAUSE,
122  KEY_INSERT,
123  KEY_HOME,
124  KEY_PAGEUP,
125  KEY_DELETE,
126  KEY_END,
127  KEY_PAGEDOWN,
128  KEY_RIGHT,
129  KEY_LEFT,
130  KEY_DOWN,
131  KEY_UP,
135  KEY_KP_MINUS,
136  KEY_KP_PLUS,
137  KEY_KP_ENTER,
138  KEY_KP_1,
139  KEY_KP_2,
140  KEY_KP_3,
141  KEY_KP_4,
142  KEY_KP_5,
143  KEY_KP_6,
144  KEY_KP_7,
145  KEY_KP_8,
146  KEY_KP_9,
147  KEY_KP_0,
150  KEY_POWER,
152  KEY_F13,
153  KEY_F14,
154  KEY_F15,
155  KEY_F16,
156  KEY_F17,
157  KEY_F18,
158  KEY_F19,
159  KEY_F20,
160  KEY_F21,
161  KEY_F22,
162  KEY_F23,
163  KEY_F24,
164  KEY_EXECUTE,
165  KEY_HELP,
166  KEY_MENU,
167  KEY_SELECT,
168  KEY_STOP,
169  KEY_AGAIN,
170  KEY_UNDO,
171  KEY_CUT,
172  KEY_COPY,
173  KEY_PASTE,
174  KEY_FIND,
175  KEY_MUTE,
176  KEY_VOLUMEUP,
178  KEY_KP_COMMA,
180  KEY_ALTERASE,
181  KEY_SYSREQ,
182  KEY_CANCEL,
183  KEY_CLEAR,
184  KEY_PRIOR,
185  KEY_RETURN2,
187  KEY_OUT,
188  KEY_OPER,
190  KEY_CRSEL,
191  KEY_EXSEL,
192  KEY_KP_00,
193  KEY_KP_000,
202  KEY_KP_TAB,
204  KEY_KP_A,
205  KEY_KP_B,
206  KEY_KP_C,
207  KEY_KP_D,
208  KEY_KP_E,
209  KEY_KP_F,
210  KEY_KP_XOR,
211  KEY_KP_POWER,
213  KEY_KP_LESS,
219  KEY_KP_COLON,
220  KEY_KP_HASH,
221  KEY_KP_SPACE,
222  KEY_KP_AT,
232  KEY_KP_CLEAR,
235  KEY_KP_OCTAL,
238  KEY_LCTRL,
239  KEY_LSHIFT,
240  KEY_LALT,
241  KEY_LGUI,
242  KEY_RCTRL,
243  KEY_RSHIFT,
244  KEY_RALT,
245  KEY_RGUI,
246  KEY_MODE,
253  KEY_WWW,
254  KEY_MAIL,
256  KEY_COMPUTER,
258  KEY_AC_HOME,
259  KEY_AC_BACK,
261  KEY_AC_STOP,
270  KEY_EJECT,
271  KEY_SLEEP,
272  KEY_TILDE,
273  KEY_PIPE
274  };
275 
284  nap::uint NAPAPI toUtf8(nap::EKeyCode key, KeyModifier mod);
285 }
nap::EKeyCode::KEY_END
@ KEY_END
nap::EKeyCode::KEY_LEFTBRACKET
@ KEY_LEFTBRACKET
nap::uint
unsigned int uint
Definition: numeric.h:23
nap::EKeyCode::KEY_UNDO
@ KEY_UNDO
nap::EKeyCode::KEY_SPACE
@ KEY_SPACE
nap::EKeyCode::KEY_KP_6
@ KEY_KP_6
nap::EKeyCode::KEY_VOLUMEUP
@ KEY_VOLUMEUP
nap::EKeyCode::KEY_WWW
@ KEY_WWW
nap::EKeyCode::KEY_STOP
@ KEY_STOP
nap::EKeyModifier::Control
@ Control
nap::EKeyCode::KEY_VOLUMEDOWN
@ KEY_VOLUMEDOWN
nap::EKeyCode::KEY_F19
@ KEY_F19
nap::EKeyCode
EKeyCode
Definition: keyboard.h:32
nap::EKeyCode::KEY_KP_GREATER
@ KEY_KP_GREATER
nap::EKeyCode::KEY_F3
@ KEY_F3
nap::EKeyCode::KEY_COMPUTER
@ KEY_COMPUTER
nap::EKeyCode::KEY_KP_5
@ KEY_KP_5
nap::EKeyCode::KEY_LEFT
@ KEY_LEFT
nap::EKeyCode::KEY_FIND
@ KEY_FIND
nap::EKeyCode::KEY_KP_EQUALSAS400
@ KEY_KP_EQUALSAS400
nap::EKeyCode::KEY_KP_MEMSTORE
@ KEY_KP_MEMSTORE
nap::EKeyCode::KEY_DOLLAR
@ KEY_DOLLAR
nap::EKeyCode::KEY_UNDERSCORE
@ KEY_UNDERSCORE
nap::EKeyCode::KEY_HOME
@ KEY_HOME
nap::EKeyCode::KEY_UNKNOWN
@ KEY_UNKNOWN
nap::EKeyCode::KEY_GREATER
@ KEY_GREATER
nap::EKeyCode::KEY_MEDIASELECT
@ KEY_MEDIASELECT
nap::EKeyCode::KEY_AC_HOME
@ KEY_AC_HOME
nap::EKeyCode::KEY_F23
@ KEY_F23
nap::EKeyCode::KEY_SLEEP
@ KEY_SLEEP
nap::EKeyCode::KEY_KP_7
@ KEY_KP_7
nap::EKeyCode::KEY_PLUS
@ KEY_PLUS
nap::EKeyCode::KEY_F24
@ KEY_F24
nap::EKeyCode::KEY_KP_PERIOD
@ KEY_KP_PERIOD
nap::EKeyCode::KEY_KP_MEMMULTIPLY
@ KEY_KP_MEMMULTIPLY
nap::EKeyCode::KEY_POWER
@ KEY_POWER
nap::EKeyCode::KEY_w
@ KEY_w
nap::EKeyCode::KEY_KP_MEMSUBTRACT
@ KEY_KP_MEMSUBTRACT
nap::EKeyCode::KEY_RIGHTBRACKET
@ KEY_RIGHTBRACKET
nap::EKeyCode::KEY_RIGHTPAREN
@ KEY_RIGHTPAREN
nap::EKeyCode::KEY_BACKSPACE
@ KEY_BACKSPACE
nap::EKeyCode::KEY_DECIMALSEPARATOR
@ KEY_DECIMALSEPARATOR
nap::EKeyCode::KEY_o
@ KEY_o
nap::EKeyCode::KEY_KP_MULTIPLY
@ KEY_KP_MULTIPLY
nap::EKeyModifier::None
@ None
nap::EKeyCode::KEY_DELETE
@ KEY_DELETE
nap::EKeyCode::KEY_KP_AMPERSAND
@ KEY_KP_AMPERSAND
nap::EKeyCode::KEY_KP_DBLVERTICALBAR
@ KEY_KP_DBLVERTICALBAR
nap::EKeyCode::KEY_KP_BINARY
@ KEY_KP_BINARY
nap::EKeyCode::KEY_PASTE
@ KEY_PASTE
nap::EKeyCode::KEY_KP_HASH
@ KEY_KP_HASH
nap::EKeyCode::KEY_RALT
@ KEY_RALT
nap::EKeyCode::KEY_KP_8
@ KEY_KP_8
nap::EKeyCode::KEY_F10
@ KEY_F10
nap::uint8
uint8_t uint8
Definition: numeric.h:16
nap::EKeyCode::KEY_PIPE
@ KEY_PIPE
nap::EKeyCode::KEY_ESCAPE
@ KEY_ESCAPE
nap::EKeyCode::KEY_KP_MEMRECALL
@ KEY_KP_MEMRECALL
nap::EKeyCode::KEY_KP_LEFTBRACE
@ KEY_KP_LEFTBRACE
nap::EKeyCode::KEY_PRINTSCREEN
@ KEY_PRINTSCREEN
nap::EKeyCode::KEY_PRIOR
@ KEY_PRIOR
nap::EKeyCode::KEY_RCTRL
@ KEY_RCTRL
nap::EKeyCode::KEY_F1
@ KEY_F1
nap::EKeyCode::KEY_KP_DECIMAL
@ KEY_KP_DECIMAL
nap::EKeyCode::KEY_COPY
@ KEY_COPY
nap::EKeyCode::KEY_OPER
@ KEY_OPER
nap::EKeyCode::KEY_EXCLAIM
@ KEY_EXCLAIM
nap::EKeyCode::KEY_PAGEDOWN
@ KEY_PAGEDOWN
nap::EKeyCode::KEY_BACKSLASH
@ KEY_BACKSLASH
nap::EKeyCode::KEY_KP_B
@ KEY_KP_B
nap::EKeyCode::KEY_KP_000
@ KEY_KP_000
nap::EKeyCode::KEY_KP_RIGHTPAREN
@ KEY_KP_RIGHTPAREN
nap::EKeyCode::KEY_SELECT
@ KEY_SELECT
nap::EKeyCode::KEY_F20
@ KEY_F20
nap::EKeyCode::KEY_KP_3
@ KEY_KP_3
nap::EKeyCode::KEY_KP_EXCLAM
@ KEY_KP_EXCLAM
nap::EKeyCode::KEY_BRIGHTNESSDOWN
@ KEY_BRIGHTNESSDOWN
nap::EKeyCode::KEY_9
@ KEY_9
nap::EKeyCode::KEY_KP_OCTAL
@ KEY_KP_OCTAL
nap::EKeyCode::KEY_KP_0
@ KEY_KP_0
nap::EKeyCode::KEY_F21
@ KEY_F21
nap::EKeyCode::KEY_KP_CLEARENTRY
@ KEY_KP_CLEARENTRY
nap::EKeyCode::KEY_KP_XOR
@ KEY_KP_XOR
nap::EKeyCode::KEY_LEFTBRACE
@ KEY_LEFTBRACE
nap::EKeyCode::KEY_CANCEL
@ KEY_CANCEL
nap::EKeyCode::KEY_SYSREQ
@ KEY_SYSREQ
nap::EKeyCode::KEY_CARET
@ KEY_CARET
nap::EKeyCode::KEY_CALCULATOR
@ KEY_CALCULATOR
nap::EKeyCode::KEY_CAPSLOCK
@ KEY_CAPSLOCK
nap::EKeyCode::KEY_AT
@ KEY_AT
nap::EKeyCode::KEY_BACKQUOTE
@ KEY_BACKQUOTE
nap::EKeyCode::KEY_QUOTEDBL
@ KEY_QUOTEDBL
nap::EKeyCode::KEY_AC_FORWARD
@ KEY_AC_FORWARD
nap::EKeyCode::KEY_7
@ KEY_7
nap::EKeyCode::KEY_MINUS
@ KEY_MINUS
nap::EKeyCode::KEY_KP_4
@ KEY_KP_4
nap::EKeyCode::KEY_a
@ KEY_a
nap::EKeyCode::KEY_CRSEL
@ KEY_CRSEL
nap::EKeyCode::KEY_COMMA
@ KEY_COMMA
nap::EKeyCode::KEY_OUT
@ KEY_OUT
nap::EKeyCode::KEY_KP_MEMADD
@ KEY_KP_MEMADD
nap::EKeyCode::KEY_m
@ KEY_m
nap::EKeyCode::KEY_l
@ KEY_l
nap::EKeyCode::KEY_F15
@ KEY_F15
nap::EKeyCode::KEY_TAB
@ KEY_TAB
nap::EKeyCode::KEY_k
@ KEY_k
nap::EKeyCode::KEY_KP_00
@ KEY_KP_00
nap::EKeyCode::KEY_QUOTE
@ KEY_QUOTE
nap::EKeyCode::KEY_EXSEL
@ KEY_EXSEL
nap::EKeyCode::KEY_t
@ KEY_t
nap::EKeyCode::KEY_THOUSANDSSEPARATOR
@ KEY_THOUSANDSSEPARATOR
nap::EKeyCode::KEY_COLON
@ KEY_COLON
nap::EKeyCode::KEY_AC_STOP
@ KEY_AC_STOP
nap::EKeyCode::KEY_KBDILLUMDOWN
@ KEY_KBDILLUMDOWN
nap::EKeyCode::KEY_EJECT
@ KEY_EJECT
nap::EKeyCode::KEY_RIGHTBRACE
@ KEY_RIGHTBRACE
nap::EKeyCode::KEY_KP_DBLAMPERSAND
@ KEY_KP_DBLAMPERSAND
nap::EKeyCode::KEY_NUMLOCKCLEAR
@ KEY_NUMLOCKCLEAR
nap::EKeyCode::KEY_p
@ KEY_p
nap::EKeyCode::KEY_UP
@ KEY_UP
nap::EKeyCode::KEY_i
@ KEY_i
nap::EKeyCode::KEY_KP_AT
@ KEY_KP_AT
nap::EKeyCode::KEY_DOWN
@ KEY_DOWN
nap::EKeyCode::KEY_z
@ KEY_z
nap::EKeyCode::KEY_AC_SEARCH
@ KEY_AC_SEARCH
nap::EKeyCode::KEY_F12
@ KEY_F12
nap::EKeyModifier::Alt
@ Alt
nap::EKeyCode::KEY_KP_HEXADECIMAL
@ KEY_KP_HEXADECIMAL
nap::EKeyCode::KEY_AUDIOPLAY
@ KEY_AUDIOPLAY
nap::EKeyCode::KEY_DISPLAYSWITCH
@ KEY_DISPLAYSWITCH
nap::EKeyCode::KEY_MAIL
@ KEY_MAIL
nap::EKeyCode::KEY_AMPERSAND
@ KEY_AMPERSAND
nap::EKeyCode::KEY_5
@ KEY_5
nap::EKeyCode::KEY_AC_BACK
@ KEY_AC_BACK
nap::EKeyCode::KEY_LSHIFT
@ KEY_LSHIFT
nap::EKeyCode::KEY_F14
@ KEY_F14
nap::EKeyCode::KEY_u
@ KEY_u
nap::EKeyCode::KEY_KP_F
@ KEY_KP_F
nap::EKeyCode::KEY_F17
@ KEY_F17
nap::EKeyCode::KEY_BRIGHTNESSUP
@ KEY_BRIGHTNESSUP
nap::EKeyCode::KEY_KP_DIVIDE
@ KEY_KP_DIVIDE
nap::EKeyCode::KEY_KP_E
@ KEY_KP_E
nap::EKeyCode::KEY_KP_TAB
@ KEY_KP_TAB
nap::EKeyCode::KEY_LESS
@ KEY_LESS
nap::EKeyCode::KEY_KP_LEFTPAREN
@ KEY_KP_LEFTPAREN
nap::EKeyCode::KEY_RSHIFT
@ KEY_RSHIFT
nap::toUtf8
nap::uint NAPAPI toUtf8(nap::EKeyCode key, KeyModifier mod)
nap::EKeyCode::KEY_KP_MINUS
@ KEY_KP_MINUS
nap::EKeyCode::KEY_0
@ KEY_0
nap::EKeyCode::KEY_8
@ KEY_8
nap::EKeyCode::KEY_LGUI
@ KEY_LGUI
nap::EKeyCode::KEY_KP_SPACE
@ KEY_KP_SPACE
nap::EKeyCode::KEY_F18
@ KEY_F18
nap::EKeyCode::KEY_SLASH
@ KEY_SLASH
nap::EKeyCode::KEY_KP_C
@ KEY_KP_C
nap::EKeyModifier
EKeyModifier
Definition: keyboard.h:21
nap::EKeyCode::KEY_6
@ KEY_6
nap::EKeyCode::KEY_c
@ KEY_c
nap::EKeyCode::KEY_KP_ENTER
@ KEY_KP_ENTER
nap::EKeyCode::KEY_RIGHT
@ KEY_RIGHT
nap::EKeyCode::KEY_2
@ KEY_2
nap::EKeyCode::KEY_F9
@ KEY_F9
nap::EKeyCode::KEY_PERCENT
@ KEY_PERCENT
nap::EKeyCode::KEY_g
@ KEY_g
nap::EKeyCode::KEY_r
@ KEY_r
nap::EKeyCode::KEY_KP_MEMDIVIDE
@ KEY_KP_MEMDIVIDE
nap::EKeyCode::KEY_f
@ KEY_f
nap::EKeyCode::KEY_d
@ KEY_d
nap::EKeyCode::KEY_s
@ KEY_s
nap::EKeyCode::KEY_KP_POWER
@ KEY_KP_POWER
nap::EKeyCode::KEY_AGAIN
@ KEY_AGAIN
nap::EKeyCode::KEY_AUDIONEXT
@ KEY_AUDIONEXT
nap::EKeyCode::KEY_KP_COLON
@ KEY_KP_COLON
nap::EKeyCode::KEY_v
@ KEY_v
nap::EKeyModifier::Shift
@ Shift
nap::EKeyCode::KEY_AUDIOMUTE
@ KEY_AUDIOMUTE
nap::EKeyCode::KEY_RETURN
@ KEY_RETURN
nap::EKeyCode::KEY_n
@ KEY_n
nap::EKeyCode::KEY_HELP
@ KEY_HELP
nap::EKeyCode::KEY_CLEAR
@ KEY_CLEAR
nap::EKeyCode::KEY_APPLICATION
@ KEY_APPLICATION
nap::EKeyCode::KEY_SEPARATOR
@ KEY_SEPARATOR
nap
Definition: templateapp.h:17
nap::EKeyCode::KEY_KP_BACKSPACE
@ KEY_KP_BACKSPACE
nap::EKeyCode::KEY_HASH
@ KEY_HASH
nap::EKeyCode::KEY_KP_A
@ KEY_KP_A
nap::EKeyCode::KEY_KP_EQUALS
@ KEY_KP_EQUALS
nap::EKeyCode::KEY_b
@ KEY_b
nap::EKeyCode::KEY_4
@ KEY_4
nap::EKeyCode::KEY_AUDIOSTOP
@ KEY_AUDIOSTOP
nap::EKeyCode::KEY_CURRENCYSUBUNIT
@ KEY_CURRENCYSUBUNIT
nap::KeyModifier
nap::uint8 KeyModifier
Definition: keyboard.h:16
nap::EKeyCode::KEY_KP_RIGHTBRACE
@ KEY_KP_RIGHTBRACE
nap::EKeyCode::KEY_LEFTPAREN
@ KEY_LEFTPAREN
nap::EKeyCode::KEY_EXECUTE
@ KEY_EXECUTE
nap::EKeyCode::KEY_MENU
@ KEY_MENU
nap::EKeyCode::KEY_SEMICOLON
@ KEY_SEMICOLON
nap::EKeyCode::KEY_F13
@ KEY_F13
nap::EKeyCode::KEY_F8
@ KEY_F8
nap::EKeyCode::KEY_1
@ KEY_1
nap::EKeyCode::KEY_QUESTION
@ KEY_QUESTION
nap::EKeyCode::KEY_MODE
@ KEY_MODE
nap::EKeyCode::KEY_KP_1
@ KEY_KP_1
nap::EKeyCode::KEY_KP_COMMA
@ KEY_KP_COMMA
nap::EKeyCode::KEY_KBDILLUMTOGGLE
@ KEY_KBDILLUMTOGGLE
nap::EKeyCode::KEY_y
@ KEY_y
nap::EKeyCode::KEY_F22
@ KEY_F22
nap::EKeyCode::KEY_AC_REFRESH
@ KEY_AC_REFRESH
nap::EKeyCode::KEY_CUT
@ KEY_CUT
nap::EKeyCode::KEY_F4
@ KEY_F4
nap::EKeyCode::KEY_KP_MEMCLEAR
@ KEY_KP_MEMCLEAR
nap::EKeyCode::KEY_INSERT
@ KEY_INSERT
nap::EKeyCode::KEY_ASTERISK
@ KEY_ASTERISK
nap::EKeyCode::KEY_SCROLLLOCK
@ KEY_SCROLLLOCK
nap::EKeyCode::KEY_e
@ KEY_e
nap::EKeyCode::KEY_KP_D
@ KEY_KP_D
nap::EKeyCode::KEY_PERIOD
@ KEY_PERIOD
nap::EKeyCode::KEY_KP_CLEAR
@ KEY_KP_CLEAR
nap::EKeyCode::KEY_F2
@ KEY_F2
nap::EKeyCode::KEY_AUDIOPREV
@ KEY_AUDIOPREV
nap::EKeyCode::KEY_x
@ KEY_x
nap::EKeyCode::KEY_KP_PERCENT
@ KEY_KP_PERCENT
nap::EKeyCode::KEY_KP_VERTICALBAR
@ KEY_KP_VERTICALBAR
nap::EKeyCode::KEY_ALTERASE
@ KEY_ALTERASE
nap::EKeyCode::KEY_LALT
@ KEY_LALT
nap::EKeyCode::KEY_KP_2
@ KEY_KP_2
nap::EKeyCode::KEY_F7
@ KEY_F7
nap::EKeyCode::KEY_CLEARAGAIN
@ KEY_CLEARAGAIN
nap::EKeyCode::KEY_F5
@ KEY_F5
nap::EKeyCode::KEY_EQUALS
@ KEY_EQUALS
nap::EKeyCode::KEY_h
@ KEY_h
nap::EKeyCode::KEY_AC_BOOKMARKS
@ KEY_AC_BOOKMARKS
nap::EKeyCode::KEY_CURRENCYUNIT
@ KEY_CURRENCYUNIT
nap::EKeyCode::KEY_j
@ KEY_j
nap::EKeyCode::KEY_3
@ KEY_3
nap::EKeyCode::KEY_LCTRL
@ KEY_LCTRL
nap::EKeyCode::KEY_KP_LESS
@ KEY_KP_LESS
nap::EKeyCode::KEY_KP_PLUS
@ KEY_KP_PLUS
nap::EKeyCode::KEY_KP_PLUSMINUS
@ KEY_KP_PLUSMINUS
nap::EKeyCode::KEY_F11
@ KEY_F11
nap::EKeyCode::KEY_PAUSE
@ KEY_PAUSE
nap::EKeyCode::KEY_TILDE
@ KEY_TILDE
nap::EKeyCode::KEY_RETURN2
@ KEY_RETURN2
nap::EKeyCode::KEY_MUTE
@ KEY_MUTE
nap::EKeyCode::KEY_F6
@ KEY_F6
nap::EKeyCode::KEY_KP_9
@ KEY_KP_9
nap::EKeyCode::KEY_RGUI
@ KEY_RGUI
nap::EKeyCode::KEY_F16
@ KEY_F16
nap::EKeyCode::KEY_KBDILLUMUP
@ KEY_KBDILLUMUP
nap::EKeyCode::KEY_q
@ KEY_q
nap::EKeyCode::KEY_PAGEUP
@ KEY_PAGEUP