aboutsummaryrefslogtreecommitdiff
path: root/ttwhy
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-06-18 15:33:43 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-06-18 15:33:43 +0200
commitc6262346b45b6c84fd1a009f21465d3af1b63593 (patch)
tree5e42bdd85b4cf0a4eb0d7994320569732d663d07 /ttwhy
parent4a365d974b17f71914909df8fe532edc929f3cad (diff)
downloadttwhy-c6262346b45b6c84fd1a009f21465d3af1b63593.tar.xz
ttwhy-c6262346b45b6c84fd1a009f21465d3af1b63593.zip
lib: prepare for state machine
Diffstat (limited to 'ttwhy')
-rw-r--r--ttwhy/event.cppm48
-rw-r--r--ttwhy/lib.cppm1
2 files changed, 49 insertions, 0 deletions
diff --git a/ttwhy/event.cppm b/ttwhy/event.cppm
new file mode 100644
index 0000000..3a81bff
--- /dev/null
+++ b/ttwhy/event.cppm
@@ -0,0 +1,48 @@
+module;
+
+#include <variant>
+
+export module ttwhy:event;
+
+namespace ttwhy
+{
+ export enum class control_key
+ {
+ del,
+ enter,
+ escape,
+ tab,
+ backspace,
+ };
+
+ export enum class navigation_key
+ {
+ up,
+ down,
+ left,
+ right,
+ home,
+ end,
+ delete_key,
+ insert_key,
+ page_up,
+ page_down,
+ };
+
+ export struct character_event
+ {
+ char value;
+ };
+
+ export struct control_event
+ {
+ control_key key;
+ };
+
+ export struct navigation_event
+ {
+ navigation_key key;
+ };
+
+ export using input_event = std::variant<character_event, control_event, navigation_event>;
+} // namespace ttwhy
diff --git a/ttwhy/lib.cppm b/ttwhy/lib.cppm
index 14e0d5c..b7766bd 100644
--- a/ttwhy/lib.cppm
+++ b/ttwhy/lib.cppm
@@ -1,4 +1,5 @@
export module ttwhy;
+export import :event;
export import :io;
export import :scoped_attributes;