NexusForce
1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
events.hpp
浏览该文件的文档.
1
#ifndef NEFORCE_TUI_EVENTS_HPP__
2
#define NEFORCE_TUI_EVENTS_HPP__
3
10
11
#include "
NeForce/core/string/codepoint.hpp
"
12
NEFORCE_BEGIN_NAMESPACE__
13
NEFORCE_BEGIN_TUI__
14
19
23
enum class
key_modifier
:
uint8_t
{
24
none
= 0,
25
ctrl
= 1,
26
alt
= 2,
27
shift
= 4,
28
};
29
30
constexpr
key_modifier operator|(key_modifier a, key_modifier b)
noexcept
{
31
// NOLINTNEXTLINE(clang-analyzer-optin.core.EnumCastOutOfRange)
32
return
static_cast<
key_modifier
>
(
static_cast<
uint8_t
>
(a) |
static_cast<
uint8_t
>
(b));
33
}
34
35
constexpr
key_modifier operator&(key_modifier a, key_modifier b)
noexcept
{
36
// NOLINTNEXTLINE(clang-analyzer-optin.core.EnumCastOutOfRange)
37
return
static_cast<
key_modifier
>
(
static_cast<
uint8_t
>
(a) &
static_cast<
uint8_t
>
(b));
38
}
39
40
47
struct
key_event
{
51
enum class
type
{
52
unknown,
53
up
,
54
down
,
55
left
,
56
right
,
57
home,
58
end
,
59
page_up,
60
page_down,
61
insert,
62
delete_,
63
enter,
64
tab,
65
tab_reverse,
66
escape
,
67
backspace,
68
F1,
69
F2,
70
F3,
71
F4,
72
F5,
73
F6,
74
F7,
75
F8,
76
F9,
77
F10,
78
F11,
79
F12,
80
F13,
81
F14,
82
F15,
83
F16,
84
F17,
85
F18,
86
F19,
87
F20,
88
F21,
89
F22,
90
F23,
91
F24,
92
printable,
93
};
94
95
type
key
=
type::unknown
;
96
codepoint
cp
;
97
key_modifier
mods
=
key_modifier::none
;
98
103
NEFORCE_NODISCARD
bool
is_printable
() const noexcept {
return
key
==
type::printable
; }
104
};
105
109
enum class
mouse_button
:
uint8_t
{
110
left
,
111
middle
,
112
right
,
113
wheelup
,
114
wheeldown
,
115
none
,
116
};
117
121
enum class
mouse_action
:
uint8_t
{
122
press
,
123
release
,
124
move
,
125
wheel
,
126
};
127
134
struct
mouse_event
{
135
int
x
= 0;
136
int
y
= 0;
137
mouse_button
button
=
mouse_button::none
;
138
mouse_action
action
=
mouse_action::move
;
139
key_modifier
mods
=
key_modifier::none
;
140
};
141
145
struct
resize_event
{
146
int
width
;
147
int
height
;
148
};
149
// TUI
151
152
NEFORCE_END_TUI__
153
NEFORCE_END_NAMESPACE__
154
#endif
// NEFORCE_TUI_EVENTS_HPP__
neforce::codepoint
Unicode码点包装类
定义
codepoint.hpp:126
codepoint.hpp
Unicode码点处理类
neforce::uint8_t
unsigned char uint8_t
8位无符号整数类型
定义
typeinfo/types.hpp:97
neforce::memory_order::release
@ release
释放操作,确保前面的读写不会被重排到后面
定义
memory_order.hpp:167
neforce::none
constexpr none_t none
默认空表示
定义
none.hpp:73
neforce::move
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
定义
shift.hpp:312
neforce::escape
constexpr string escape(const string_view str)
转义字符串视图中的特殊字符
定义
string.hpp:108
neforce::tui::mouse_action
mouse_action
鼠标动作枚举
定义
events.hpp:121
neforce::tui::mouse_button
mouse_button
鼠标按钮枚举
定义
events.hpp:109
neforce::tui::key_modifier
key_modifier
修饰键位掩码
定义
events.hpp:23
neforce::tui::mouse_action::move
@ move
移动
定义
events.hpp:124
neforce::tui::mouse_action::wheel
@ wheel
滚轮
定义
events.hpp:125
neforce::tui::mouse_action::press
@ press
按下
定义
events.hpp:122
neforce::tui::mouse_button::none
@ none
无按钮
定义
events.hpp:115
neforce::tui::mouse_button::middle
@ middle
中键
定义
events.hpp:111
neforce::tui::mouse_button::wheelup
@ wheelup
滚轮上滚
定义
events.hpp:113
neforce::tui::mouse_button::wheeldown
@ wheeldown
滚轮下滚
定义
events.hpp:114
neforce::tui::gauge_direction::up
@ up
向上增长
定义
gauge.hpp:26
neforce::tui::gauge_direction::down
@ down
向下增长
定义
gauge.hpp:27
neforce::tui::gauge_direction::right
@ right
向右增长
定义
gauge.hpp:24
neforce::tui::gauge_direction::left
@ left
向左增长
定义
gauge.hpp:25
neforce::tui::key_modifier::shift
@ shift
Shift 键
定义
events.hpp:27
neforce::tui::key_modifier::none
@ none
无修饰键
定义
events.hpp:24
neforce::tui::key_modifier::alt
@ alt
Alt 键
定义
events.hpp:26
neforce::tui::key_modifier::ctrl
@ ctrl
Ctrl 键
定义
events.hpp:25
neforce::end
constexpr decltype(auto) end(Container &cont) noexcept(noexcept(cont.end()))
获取容器的结束迭代器
定义
type_erase.hpp:41
neforce::tui::key_event
键盘事件
定义
events.hpp:47
neforce::tui::key_event::cp
codepoint cp
可打印字符的码点
定义
events.hpp:96
neforce::tui::key_event::key
type key
按键标识
定义
events.hpp:95
neforce::tui::key_event::is_printable
bool is_printable() const noexcept
检查是否为可打印字符
定义
events.hpp:103
neforce::tui::key_event::type
type
特殊按键枚举
定义
events.hpp:51
neforce::tui::key_event::type::printable
@ printable
可打印字符,查看 ch 字段
定义
events.hpp:92
neforce::tui::key_event::type::unknown
@ unknown
未知按键
定义
events.hpp:52
neforce::tui::key_event::mods
key_modifier mods
当前按下的修饰键
定义
events.hpp:97
neforce::tui::mouse_event
鼠标事件
定义
events.hpp:134
neforce::tui::mouse_event::y
int y
行坐标(0起始)
定义
events.hpp:136
neforce::tui::mouse_event::action
mouse_action action
动作类型
定义
events.hpp:138
neforce::tui::mouse_event::button
mouse_button button
触发按钮
定义
events.hpp:137
neforce::tui::mouse_event::x
int x
列坐标(0起始)
定义
events.hpp:135
neforce::tui::mouse_event::mods
key_modifier mods
当前按下的修饰键
定义
events.hpp:139
neforce::tui::resize_event
终端尺寸变化事件
定义
events.hpp:145
neforce::tui::resize_event::height
int height
新的终端高度
定义
events.hpp:147
neforce::tui::resize_event::width
int width
新的终端宽度
定义
events.hpp:146
include
NeForce
tui
events.hpp
制作者
1.16.0