diff options
author | crupest <crupest@outlook.com> | 2018-12-11 23:38:59 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-12-11 23:38:59 +0800 |
commit | 5220ab4fee1281b2daeacf4dd50448e06eb1f5e8 (patch) | |
tree | f4eeba51b3fb6af483b952d79becb1d2b857ac75 /src/ui/render/render_object.cpp | |
parent | 5f1c790741192733cf2867ce79923b48ad6b6151 (diff) | |
download | cru-5220ab4fee1281b2daeacf4dd50448e06eb1f5e8.tar.gz cru-5220ab4fee1281b2daeacf4dd50448e06eb1f5e8.tar.bz2 cru-5220ab4fee1281b2daeacf4dd50448e06eb1f5e8.zip |
...
Diffstat (limited to 'src/ui/render/render_object.cpp')
-rw-r--r-- | src/ui/render/render_object.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/ui/render/render_object.cpp b/src/ui/render/render_object.cpp index 78445bf1..6796f382 100644 --- a/src/ui/render/render_object.cpp +++ b/src/ui/render/render_object.cpp @@ -220,9 +220,40 @@ namespace cru::ui::render InvalidateRenderHost; } - void CustomDrawHandlerRenderObject::Draw(ID2D1RenderTarget * render_target) + void CustomDrawHandlerRenderObject::Draw(ID2D1RenderTarget* render_target) { if (draw_handler_ != nullptr) draw_handler_(render_target); } + + ContainerRenderObject::~ContainerRenderObject() + { + for (const auto child : children_) + delete child; + } + + void ContainerRenderObject::AddChild(RenderObject* child) + { + children_.push_back(child); + } + + void ContainerRenderObject::AddChild(RenderObject* child, const int position) + { + assert(position >= 0); + assert(position <= children_.size()); + children_.insert(children_.cbegin() + position, child); + } + + void ContainerRenderObject::RemoveChild(const int position) + { + assert(position >= 0); + assert(position < children_.size()); + children_.erase(children_.cbegin() + position); + } + + void ContainerRenderObject::Draw(ID2D1RenderTarget* render_target) + { + for (const auto child : children_) + child->Draw(render_target); + } } |