HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
gui_event_variant.hpp
1// Copyright Take Vos 2022.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "gui_event_type.hpp"
8
9namespace hi::inline v1 {
10
11enum class gui_event_variant {
14 other,
15
18 mouse,
19
22 keyboard,
23
26 grapheme
27};
28
29[[nodiscard]] constexpr gui_event_variant to_gui_event_variant(gui_event_type type) noexcept
30{
31 switch (type) {
32 case gui_event_type::mouse_move:
33 case gui_event_type::mouse_drag:
34 case gui_event_type::mouse_down:
35 case gui_event_type::mouse_up:
36 case gui_event_type::mouse_wheel:
37 case gui_event_type::mouse_enter:
38 case gui_event_type::mouse_exit:
39 case gui_event_type::mouse_exit_window:
40 return gui_event_variant::mouse;
41
42 case gui_event_type::keyboard_down:
43 case gui_event_type::keyboard_up:
44 case gui_event_type::keyboard_enter:
45 case gui_event_type::keyboard_exit:
46 return gui_event_variant::keyboard;
47
48 case gui_event_type::keyboard_grapheme:
49 case gui_event_type::keyboard_partial_grapheme:
50 return gui_event_variant::grapheme;
51
52 default:
53 return gui_event_variant::other;
54 }
55}
56
57} // namespace hi::inline v1