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