aboutsummaryrefslogtreecommitdiff
path: root/mwe/events/src/event.cpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-10-31 18:41:30 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-10-31 18:41:30 +0100
commit8e3367b186e60eb1e33bf58a066823cb00a7566e (patch)
treec4038a31993767276efec5fa1b1a37dff3b79465 /mwe/events/src/event.cpp
parentb7df77d6cc26cb9ee46891d7108f01734b3104dd (diff)
parent35ef3ba91ce9e00466508f2388f4c1dd2321b505 (diff)
Merge branch 'master' into poc/audio-miniaudio
Diffstat (limited to 'mwe/events/src/event.cpp')
-rw-r--r--mwe/events/src/event.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/mwe/events/src/event.cpp b/mwe/events/src/event.cpp
new file mode 100644
index 0000000..c9201d0
--- /dev/null
+++ b/mwe/events/src/event.cpp
@@ -0,0 +1,52 @@
+#include "event.h"
+#include "keyCodes.h"
+// Event class methods
+Event::Event(std::string eventType) { eventData["eventType"] = eventType; }
+
+void Event::addArgument(const std::string & key,
+ const std::variant<int, std::string, float> & value) {
+ eventData[key] = value;
+}
+
+std::variant<int, std::string, float>
+Event::getArgument(const std::string & key) const {
+ return eventData.at(key);
+}
+
+std::string Event::getType() const {
+ return std::get<std::string>(eventData.at("eventType"));
+}
+std::string Event::toString() const { return std::to_string(getEventType()); }
+bool Event::getHandled() const { return isHandled; }
+
+void Event::markHandled() { isHandled = true; }
+
+// KeyPressedEvent class methods
+KeyPressedEvent::KeyPressedEvent(int keycode)
+ : Event("KeyPressedEvent"), key(keycode), repeatCount(0) {}
+
+Keycode KeyPressedEvent::getKeyCode() const { return key; }
+
+int KeyPressedEvent::getRepeatCount() const { return repeatCount; }
+
+// KeyReleasedEvent class methods
+KeyReleasedEvent::KeyReleasedEvent(int keycode)
+ : Event("KeyReleasedEvent"), key(keycode) {}
+
+Keycode KeyReleasedEvent::getKeyCode() const { return key; }
+
+// MousePressedEvent class methods
+MousePressedEvent::MousePressedEvent(int mouseX, int mouseY)
+ : Event("MousePressedEvent"), mouseX(mouseX), mouseY(mouseY) {}
+
+std::pair<int, int> MousePressedEvent::getMousePosition() const {
+ return {mouseX, mouseY};
+}
+
+//Collision event
+CollisionEvent::CollisionEvent(Collision collision)
+ : collisionData(collision), Event("CollisionEvent") {}
+
+Collision CollisionEvent::getCollisionData() const {
+ return this->collisionData;
+}