aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/facade/EventData.h
diff options
context:
space:
mode:
authorWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-12-17 09:25:11 +0100
committerWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-12-17 09:25:11 +0100
commit093493d1ecc082672d80707c31bd95a5175ab2ce (patch)
tree7a692e5bafff5bfda971ce3e9c91ba48bbd7b5dc /src/crepe/facade/EventData.h
parentcc2ec343367ebaa3b6a6142532f7a067c3c981a1 (diff)
parent3c99c73f3c1c31ba97f7e8c74f434c880f8a9036 (diff)
Merge branch 'wouter/inputSystem' into wouter/button-improvement
Diffstat (limited to 'src/crepe/facade/EventData.h')
-rw-r--r--src/crepe/facade/EventData.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/crepe/facade/EventData.h b/src/crepe/facade/EventData.h
new file mode 100644
index 0000000..a7526b4
--- /dev/null
+++ b/src/crepe/facade/EventData.h
@@ -0,0 +1,54 @@
+#pragma once
+#include "../api/KeyCodes.h"
+#include "../types.h"
+namespace crepe {
+//! EventType enum for passing eventType
+enum EventType {
+ NONE = 0,
+ MOUSE_DOWN,
+ MOUSE_UP,
+ MOUSE_MOVE,
+ MOUSE_WHEEL,
+ KEY_UP,
+ KEY_DOWN,
+ SHUTDOWN,
+ WINDOW_MINIMIZE,
+ WINDOW_MAXIMIZE,
+ WINDOW_FOCUS_GAIN,
+ WINDOW_FOCUS_LOST,
+ WINDOW_MOVE,
+ WINDOW_RESIZE,
+ WINDOW_EXPOSE,
+};
+
+//! Struct for storing key data.
+struct KeyData {
+ Keycode key = Keycode::NONE;
+ bool key_repeat = false;
+};
+
+//! Struct for storing mouse data.
+struct MouseData {
+ MouseButton mouse_button = MouseButton::NONE;
+ ivec2 mouse_position = {-1, -1};
+ int scroll_direction = -1;
+ float scroll_delta = INFINITY;
+ ivec2 rel_mouse_move = {-1, -1};
+};
+
+//! Struct for storing window data.
+struct WindowData {
+ ivec2 move_delta;
+ ivec2 resize_dimension;
+};
+
+//! EventData struct for passing event data from facade
+struct EventData {
+ EventType event_type = EventType::NONE;
+ union {
+ KeyData key_data;
+ MouseData mouse_data;
+ WindowData window_data;
+ } data;
+};
+} // namespace crepe