Make ui::single_container release children on destroy

This commit is contained in:
Nikita Lisitsa 2022-03-13 17:20:02 +03:00
parent e568ecf14c
commit 11b904c890
6 changed files with 7 additions and 14 deletions

View file

@ -15,8 +15,6 @@ namespace psemek::ui
virtual std::optional<geom::vector<float, 2>> min_size() const { return min_size_; }
virtual std::optional<geom::vector<float, 2>> max_size() const { return max_size_; }
~frame() override;
private:
std::optional<geom::vector<float, 2>> min_size_;
std::optional<geom::vector<float, 2>> max_size_;

View file

@ -38,8 +38,6 @@ namespace psemek::ui
void draw(painter & p) const override;
void post_draw(painter & p) const override;
~scroller() override;
protected:
virtual float width() const;

View file

@ -13,6 +13,8 @@ namespace psemek::ui
virtual std::shared_ptr<element> set_child(std::shared_ptr<element> c);
virtual std::shared_ptr<element> child() { return child_; }
~single_container() override;
protected:
std::shared_ptr<element> child_;
element * children_[1]{nullptr};

View file

@ -22,9 +22,4 @@ namespace psemek::ui
post_reshape();
}
frame::~frame()
{
release_children();
}
}

View file

@ -291,11 +291,6 @@ namespace psemek::ui
p.end_stencil();
}
scroller::~scroller()
{
release_children();
}
float scroller::width() const
{
return 0;

View file

@ -15,4 +15,9 @@ namespace psemek::ui
return old;
}
single_container::~single_container()
{
release_children();
}
}