From 27255cdb64b87c048fad70ca893f684cf61819a4 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 1 Aug 2024 20:46:13 +0200 Subject: Change global widget container to page --- src/gui/Page.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/gui/Page.cpp (limited to 'src/gui/Page.cpp') diff --git a/src/gui/Page.cpp b/src/gui/Page.cpp new file mode 100644 index 0000000..817c7fd --- /dev/null +++ b/src/gui/Page.cpp @@ -0,0 +1,22 @@ +#include "../../include/gui/Page.hpp" +#include "../../include/gui/Widget.hpp" + +namespace gsr { + void Page::add_widget(std::unique_ptr widget) { + widgets.push_back(std::move(widget)); + } + + void Page::on_event(mgl::Event &event, mgl::Window &window) { + // Process widgets by visibility (backwards) + for(auto it = widgets.rbegin(), end = widgets.rend(); it != end; ++it) { + if(!(*it)->on_event(event, window)) + return; + } + } + + void Page::draw(mgl::Window &window) { + for(auto &widget : widgets) { + widget->draw(window); + } + } +} \ No newline at end of file -- cgit v1.2.3