diff options
Diffstat (limited to 'include/gui/WidgetContainer.hpp')
-rw-r--r-- | include/gui/WidgetContainer.hpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/gui/WidgetContainer.hpp b/include/gui/WidgetContainer.hpp new file mode 100644 index 0000000..e40ffb9 --- /dev/null +++ b/include/gui/WidgetContainer.hpp @@ -0,0 +1,30 @@ +#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 |