7#include "keyboard_modifiers.hpp"
9#include "../exception.hpp"
10#include "../strings.hpp"
11#include "../enum_metadata.hpp"
12#include <unordered_map>
14namespace hi::inline v1 {
16enum class keyboard_virtual_key : uint8_t {
69 open_parentheses =
'(',
70 close_parentheses =
')',
157constexpr auto keyboard_virtual_key_metadata = enum_metadata{
158 keyboard_virtual_key::nul,
"nul",
159 keyboard_virtual_key::A,
"a",
160 keyboard_virtual_key::B,
"b",
161 keyboard_virtual_key::C,
"c",
162 keyboard_virtual_key::D,
"d",
163 keyboard_virtual_key::E,
"e",
164 keyboard_virtual_key::F,
"f",
165 keyboard_virtual_key::G,
"g",
166 keyboard_virtual_key::H,
"h",
167 keyboard_virtual_key::I,
"i",
168 keyboard_virtual_key::J,
"j",
169 keyboard_virtual_key::K,
"k",
170 keyboard_virtual_key::L,
"l",
171 keyboard_virtual_key::M,
"m",
172 keyboard_virtual_key::N,
"n",
173 keyboard_virtual_key::O,
"o",
174 keyboard_virtual_key::P,
"p",
175 keyboard_virtual_key::Q,
"q",
176 keyboard_virtual_key::R,
"r",
177 keyboard_virtual_key::S,
"s",
178 keyboard_virtual_key::T,
"t",
179 keyboard_virtual_key::U,
"u",
180 keyboard_virtual_key::V,
"v",
181 keyboard_virtual_key::W,
"w",
182 keyboard_virtual_key::X,
"x",
183 keyboard_virtual_key::Y,
"y",
184 keyboard_virtual_key::Z,
"z",
185 keyboard_virtual_key::_0,
"0",
186 keyboard_virtual_key::_1,
"1",
187 keyboard_virtual_key::_2,
"2",
188 keyboard_virtual_key::_3,
"3",
189 keyboard_virtual_key::_4,
"4",
190 keyboard_virtual_key::_5,
"5",
191 keyboard_virtual_key::_6,
"6",
192 keyboard_virtual_key::_7,
"7",
193 keyboard_virtual_key::_8,
"8",
194 keyboard_virtual_key::_9,
"9",
195 keyboard_virtual_key::plus,
"plus",
196 keyboard_virtual_key::minus,
"-",
197 keyboard_virtual_key::star,
"*",
198 keyboard_virtual_key::slash,
"/",
199 keyboard_virtual_key::percent,
"%",
200 keyboard_virtual_key::tilde,
"~",
201 keyboard_virtual_key::ampersant,
"&",
202 keyboard_virtual_key::pipe,
"|",
203 keyboard_virtual_key::caret,
"^",
204 keyboard_virtual_key::less,
"<",
205 keyboard_virtual_key::equal,
"=",
206 keyboard_virtual_key::greater,
">",
207 keyboard_virtual_key::open_parentheses,
"(",
208 keyboard_virtual_key::close_parentheses,
")",
209 keyboard_virtual_key::open_bracket,
"[",
210 keyboard_virtual_key::close_bracket,
"]",
211 keyboard_virtual_key::open_brace,
"{",
212 keyboard_virtual_key::close_brace,
"}",
213 keyboard_virtual_key::period,
".",
214 keyboard_virtual_key::comma,
",",
215 keyboard_virtual_key::colon,
":",
216 keyboard_virtual_key::semi_colon,
";",
217 keyboard_virtual_key::bang,
"!",
218 keyboard_virtual_key::question,
"?",
219 keyboard_virtual_key::space,
"space",
220 keyboard_virtual_key::tab,
"tab",
221 keyboard_virtual_key::enter,
"enter",
222 keyboard_virtual_key::backtick,
"`",
223 keyboard_virtual_key::quote,
"quote",
224 keyboard_virtual_key::double_quote,
"dquote",
225 keyboard_virtual_key::at,
"@",
226 keyboard_virtual_key::hash,
"#",
227 keyboard_virtual_key::dollar,
"$",
228 keyboard_virtual_key::underscore,
"_",
229 keyboard_virtual_key::backslash,
"backslash",
230 keyboard_virtual_key::F1,
"f1",
231 keyboard_virtual_key::F2,
"f2",
232 keyboard_virtual_key::F3,
"f3",
233 keyboard_virtual_key::F4,
"f4",
234 keyboard_virtual_key::F5,
"f5",
235 keyboard_virtual_key::F6,
"f6",
236 keyboard_virtual_key::F7,
"f7",
237 keyboard_virtual_key::F8,
"f8",
238 keyboard_virtual_key::F9,
"f9",
239 keyboard_virtual_key::F10,
"f10",
240 keyboard_virtual_key::F11,
"f11",
241 keyboard_virtual_key::F12,
"f12",
242 keyboard_virtual_key::F13,
"f13",
243 keyboard_virtual_key::F14,
"f14",
244 keyboard_virtual_key::F15,
"f15",
245 keyboard_virtual_key::F16,
"f16",
246 keyboard_virtual_key::F17,
"f17",
247 keyboard_virtual_key::F18,
"f18",
248 keyboard_virtual_key::F19,
"f19",
249 keyboard_virtual_key::F20,
"f20",
250 keyboard_virtual_key::F21,
"f21",
251 keyboard_virtual_key::F22,
"f22",
252 keyboard_virtual_key::F23,
"f23",
253 keyboard_virtual_key::F24,
"f24",
254 keyboard_virtual_key::home,
"home",
255 keyboard_virtual_key::end,
"end",
256 keyboard_virtual_key::backspace,
"backspace",
257 keyboard_virtual_key::clear,
"clear",
258 keyboard_virtual_key::insert,
"insert",
259 keyboard_virtual_key::escape,
"escape",
260 keyboard_virtual_key::_delete,
"delete",
261 keyboard_virtual_key::left,
"left",
262 keyboard_virtual_key::right,
"right",
263 keyboard_virtual_key::up,
"up",
264 keyboard_virtual_key::down,
"down",
265 keyboard_virtual_key::page_up,
"page-up",
266 keyboard_virtual_key::page_down,
"page-down",
267 keyboard_virtual_key::menu,
"menu",
268 keyboard_virtual_key::sysmenu,
"sysmenu",
269 keyboard_virtual_key::print_screen,
"print-screen",
270 keyboard_virtual_key::pause_break,
"pause-break",
271 keyboard_virtual_key::media_next_track,
"media-next",
272 keyboard_virtual_key::media_prev_track,
"media-prev",
273 keyboard_virtual_key::media_stop,
"media-stop",
274 keyboard_virtual_key::media_play_pause,
"media-play",
275 keyboard_virtual_key::volume_mute,
"volume-mute",
276 keyboard_virtual_key::volume_up,
"volume-up",
277 keyboard_virtual_key::volume_down,
"volume-down",
278 keyboard_virtual_key::browser_back,
"browser-back",
279 keyboard_virtual_key::browser_forward,
"browser-forward",
280 keyboard_virtual_key::browser_home,
"browser-home",
281 keyboard_virtual_key::browser_refresh,
"browser-refresh",
282 keyboard_virtual_key::browser_stop,
"browser-stop",
283 keyboard_virtual_key::browser_search,
"browser-search",
284 keyboard_virtual_key::browser_favorites,
"browser-favorites"
288constexpr keyboard_virtual_key to_keyboard_virtual_key(std::string_view s)
290 return keyboard_virtual_key_metadata[s];
293keyboard_virtual_key to_keyboard_virtual_key(
int key_code,
bool extended, keyboard_modifiers modifiers);
295constexpr std::string_view to_string_view(keyboard_virtual_key key)
noexcept
297 return keyboard_virtual_key_metadata[key];
307 return lhs << to_string_view(rhs);
320template<
typename CharT>
321struct std::formatter<hi::keyboard_virtual_key, CharT> : std::formatter<std::string_view, CharT> {
322 auto format(hi::keyboard_virtual_key
const& t,
auto& fc)
324 return std::formatter<std::string_view, CharT>{}.format(hi::to_string_view(t), fc);
This file includes required definitions.
T operator()(T... args)
Definition datum.hpp:2458