aboutsummaryrefslogtreecommitdiff
path: root/include/gui
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-08-01 20:46:13 +0200
committerdec05eba <dec05eba@protonmail.com>2024-08-01 20:46:13 +0200
commit27255cdb64b87c048fad70ca893f684cf61819a4 (patch)
treed89ea70475d1e8e9508d652eef836c49c0d162a8 /include/gui
parent6624db873c91087bc1805b9d018c92c455b85190 (diff)
Change global widget container to page
Diffstat (limited to 'include/gui')
-rw-r--r--include/gui/Page.hpp27
-rw-r--r--include/gui/Widget.hpp1
-rw-r--r--include/gui/WidgetContainer.hpp30
3 files changed, 27 insertions, 31 deletions
diff --git a/include/gui/Page.hpp b/include/gui/Page.hpp
new file mode 100644
index 0000000..1435e68
--- /dev/null
+++ b/include/gui/Page.hpp
@@ -0,0 +1,27 @@
+#pragma once
+
+#include <vector>
+#include <memory>
+
+namespace mgl {
+ class Event;
+ class Window;
+}
+
+namespace gsr {
+ class Widget;
+
+ class Page {
+ public:
+ Page() = default;
+ Page(const Page&) = delete;
+ Page& operator=(const Page&) = delete;
+
+ void add_widget(std::unique_ptr<Widget> widget);
+
+ void on_event(mgl::Event &event, mgl::Window &window);
+ void draw(mgl::Window &window);
+ private:
+ std::vector<std::unique_ptr<Widget>> widgets;
+ };
+} \ No newline at end of file
diff --git a/include/gui/Widget.hpp b/include/gui/Widget.hpp
index 81f47b5..63cb64a 100644
--- a/include/gui/Widget.hpp
+++ b/include/gui/Widget.hpp
@@ -24,6 +24,5 @@ namespace gsr {
virtual mgl::vec2f get_position() const;
protected:
mgl::vec2f position;
- bool move_to_top = false;
};
} \ No newline at end of file
diff --git a/include/gui/WidgetContainer.hpp b/include/gui/WidgetContainer.hpp
deleted file mode 100644
index e40ffb9..0000000
--- a/include/gui/WidgetContainer.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-
-#include <vector>
-#include <memory>
-
-namespace mgl {
- class Event;
- class Window;
-}
-
-namespace gsr {
- class Widget;
-
- class WidgetContainer {
- public:
- static WidgetContainer& get_instance();
-
- void add_widget(Widget *widget);
- void remove_widget(Widget *widget);
-
- void on_event(mgl::Event &event, mgl::Window &window);
- void draw(mgl::Window &window);
- private:
- WidgetContainer() = default;
- WidgetContainer& operator=(const WidgetContainer&) = delete;
- WidgetContainer(const WidgetContainer&) = delete;
- private:
- std::vector<Widget*> widgets;
- };
-} \ No newline at end of file