Allows components to remove a child or access to children in general (#152)

Allows components to remove a child or access to children in general.

Co-authored-by: Felix Heitmann <fheitmann@se-gpu-03.intern.plath.de>
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
This commit is contained in:
Felix Heitmann
2021-07-15 15:29:33 +02:00
committed by GitHub
parent 23789c2d7b
commit c34494ce26
3 changed files with 171 additions and 23 deletions

View File

@@ -26,9 +26,13 @@ class ComponentBase {
ComponentBase() = default;
virtual ~ComponentBase();
// ComponentBase hierarchy.
// Component hierarchy:
ComponentBase* Parent();
Component& ChildAt(size_t i);
size_t ChildCount() const;
void Add(Component children);
void Detach();
void DetachAllChildren();
// Renders the component.
virtual Element Render();
@@ -67,7 +71,6 @@ class ComponentBase {
private:
ComponentBase* parent_ = nullptr;
void Detach();
};
using Component = std::shared_ptr<ComponentBase>;