#include <memory> #include "ui/view.hpp" #include "ui/new_child_event.hpp" namespace rmrf::ui { view::view(std::shared_ptr<view> parent) : parent_view{parent} { if(this->parent_view != nullptr) { this->parent_view->add_child(this); } } view::~view() { if(this->parent_view != nullptr) { this->parent_view->remove_child(this); } // Delete all childs that still exist this->child_views.clear(); } std::shared_ptr<view> view::get_parent() { return this->parent_view; } void view::add_child(std::unique_ptr<view> child) { this->child_views.push_back(child); } void view::remove_child(std::unique_ptr<view> child) { this->child_views.remove(child); } }