diff options
author | crupest <crupest@outlook.com> | 2022-02-09 23:00:49 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-09 23:00:49 +0800 |
commit | d18b5453d7ffd19667ee8ac125b34ab5328f0dc3 (patch) | |
tree | 10b969c744dd0ef90a183e4ffacddc818b86534e /src/ui/render/SingleChildRenderObject.cpp | |
parent | e18c4fb46d7913f337cc25b9a6e3a25359c3f10a (diff) | |
download | cru-d18b5453d7ffd19667ee8ac125b34ab5328f0dc3.tar.gz cru-d18b5453d7ffd19667ee8ac125b34ab5328f0dc3.tar.bz2 cru-d18b5453d7ffd19667ee8ac125b34ab5328f0dc3.zip |
...
Diffstat (limited to 'src/ui/render/SingleChildRenderObject.cpp')
-rw-r--r-- | src/ui/render/SingleChildRenderObject.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/ui/render/SingleChildRenderObject.cpp b/src/ui/render/SingleChildRenderObject.cpp new file mode 100644 index 00000000..7b10b343 --- /dev/null +++ b/src/ui/render/SingleChildRenderObject.cpp @@ -0,0 +1,22 @@ +#include "cru/ui/render/SingleChildRenderObject.h" + +namespace cru::ui::render { +void SingleChildRenderObject::SetChild(RenderObject *new_child) { + assert(new_child->GetParent() == nullptr); + if (child_ == new_child) return; + auto old_child = child_; + if (child_) { + child_->SetParent(nullptr); + } + child_ = new_child; + if (child_) { + child_->SetParent(this); + } + OnChildChanged(old_child, new_child); +} + +void SingleChildRenderObject::OnChildChanged(RenderObject *old_child, + RenderObject *new_child) { + InvalidateLayout(); +} +} // namespace cru::ui::render |