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
12NEFORCE_BEGIN_NAMESPACE__
13NEFORCE_BEGIN_TUI__
14
19
23enum class key_modifier : uint8_t {
24 none = 0,
25 ctrl = 1,
26 alt = 2,
27 shift = 4,
28};
29
30constexpr 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
35constexpr 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
47struct key_event {
51 enum class type {
52 unknown,
57 home,
59 page_up,
60 page_down,
61 insert,
62 delete_,
63 enter,
64 tab,
65 tab_reverse,
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
98
103 NEFORCE_NODISCARD bool is_printable() const noexcept { return key == type::printable; }
104};
105
117
127
141
146 int width;
147 int height;
148};
149 // TUI
151
152NEFORCE_END_TUI__
153NEFORCE_END_NAMESPACE__
154#endif // NEFORCE_TUI_EVENTS_HPP__
Unicode码点包装类
Unicode码点处理类
unsigned char uint8_t
8位无符号整数类型
@ release
释放操作,确保前面的读写不会被重排到后面
constexpr none_t none
默认空表示
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
constexpr string escape(const string_view str)
转义字符串视图中的特殊字符
mouse_action
鼠标动作枚举
mouse_button
鼠标按钮枚举
key_modifier
修饰键位掩码
constexpr decltype(auto) end(Container &cont) noexcept(noexcept(cont.end()))
获取容器的结束迭代器
codepoint cp
可打印字符的码点
bool is_printable() const noexcept
检查是否为可打印字符
type
特殊按键枚举
@ printable
可打印字符,查看 ch 字段
key_modifier mods
当前按下的修饰键
int y
行坐标(0起始)
mouse_action action
动作类型
mouse_button button
触发按钮
int x
列坐标(0起始)
key_modifier mods
当前按下的修饰键
终端尺寸变化事件
int height
新的终端高度
int width
新的终端宽度