aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/gui/Button.hpp16
-rw-r--r--include/gui/Widget.hpp21
2 files changed, 37 insertions, 0 deletions
diff --git a/include/gui/Button.hpp b/include/gui/Button.hpp
new file mode 100644
index 0000000..ac9aa5c
--- /dev/null
+++ b/include/gui/Button.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "Widget.hpp"
+#include <string>
+
+namespace gsr {
+ class Button : public Widget {
+ public:
+ Button(mgl::vec2f size);
+ void on_event(mgl::Event &event, mgl::Window &window) override;
+ void draw(mgl::Window &window) override;
+ private:
+ mgl::vec2f size;
+ bool mouse_inside = false;
+ };
+} \ No newline at end of file
diff --git a/include/gui/Widget.hpp b/include/gui/Widget.hpp
new file mode 100644
index 0000000..cf81d69
--- /dev/null
+++ b/include/gui/Widget.hpp
@@ -0,0 +1,21 @@
+#pragma once
+
+#include <mglpp/system/vec.hpp>
+
+namespace mgl {
+ class Event;
+ class Window;
+}
+
+namespace gsr {
+ class Widget {
+ public:
+ virtual ~Widget() = default;
+
+ virtual void on_event(mgl::Event &event, mgl::Window &window) = 0;
+ virtual void draw(mgl::Window &window) = 0;
+ virtual void set_position(mgl::vec2f position);
+ protected:
+ mgl::vec2f position;
+ };
+} \ No newline at end of file