diff --git a/include/Spectre/System/Event.h b/include/Spectre/System/Event.h index 657e461..70a39e0 100644 --- a/include/Spectre/System/Event.h +++ b/include/Spectre/System/Event.h @@ -58,6 +58,8 @@ public : Event(Type type = None); + std::string toString() const; + // Helper methods static Event createSize(Display *display, int width, int height); diff --git a/source/System/Event.cpp b/source/System/Event.cpp index 43dee46..33b252a 100644 --- a/source/System/Event.cpp +++ b/source/System/Event.cpp @@ -1,5 +1,6 @@ #include +#include namespace sp { @@ -8,6 +9,23 @@ type (type) { } +std::string Event::toString() const +{ + switch(type) { + case Type::Quit : + return "Quit"; + case Type::Size : + return "Size (" + core::to_string(size.width) + ", " + core::to_string(size.height) + ")"; + case Type::Key : + return "Key '" + key.getKeyName() + "' " + (key.pressed ? "pressed" : "released"); + case Type::MouseButton : + return "MouseButton '" + mouseButton.getName() + "' " + (mouseButton.pressed ? "pressed" : "released"); + case Type::MouseMove : + return "MouseMove (" + core::to_string(mouseMove.x) + ", " + core::to_string(mouseMove.y) + ")"; + } + return "Unknown"; +} + std::string Event::KeyEvent::getKeyName() const { return Keyboard::getKeyName(code);