diff options
author | crupest <crupest@outlook.com> | 2020-04-11 00:01:51 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-04-11 00:01:51 +0800 |
commit | 23ef59b6aa14874e3b68c8716c137eb65583cd63 (patch) | |
tree | 3f15dbfe3115b03a19a49abb7fcbc27d9c440769 /src/ui/render/render_object.cpp | |
parent | 41e17e281ba31e9eff612017f5a2dafd847278b0 (diff) | |
download | cru-23ef59b6aa14874e3b68c8716c137eb65583cd63.tar.gz cru-23ef59b6aa14874e3b68c8716c137eb65583cd63.tar.bz2 cru-23ef59b6aa14874e3b68c8716c137eb65583cd63.zip |
...
Diffstat (limited to 'src/ui/render/render_object.cpp')
-rw-r--r-- | src/ui/render/render_object.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ui/render/render_object.cpp b/src/ui/render/render_object.cpp index e329d150..4a1bedf3 100644 --- a/src/ui/render/render_object.cpp +++ b/src/ui/render/render_object.cpp @@ -1,6 +1,7 @@ #include "cru/ui/render/render_object.hpp" #include "cru/common/logger.hpp" +#include "cru/ui/ui_host.hpp" #include <algorithm> @@ -18,7 +19,7 @@ void RenderObject::AddChild(RenderObject* render_object, const Index position) { children_.insert(children_.cbegin() + position, render_object); render_object->SetParent(this); - render_object->SetRenderHostRecursive(GetRenderHost()); + render_object->SetRenderHostRecursive(GetUiHost()); OnAddChild(render_object, position); } @@ -165,6 +166,14 @@ void RenderObject::SetParent(RenderObject* new_parent) { OnParentChanged(old_parent, new_parent); } +void RenderObject::InvalidateLayout() { + if (ui_host_ != nullptr) ui_host_->InvalidateLayout(); +} + +void RenderObject::InvalidatePaint() { + if (ui_host_ != nullptr) ui_host_->InvalidatePaint(); +} + void RenderObject::NotifyAfterLayoutRecursive(RenderObject* render_object) { render_object->OnAfterLayout(); for (const auto o : render_object->GetChildren()) { @@ -172,11 +181,10 @@ void RenderObject::NotifyAfterLayoutRecursive(RenderObject* render_object) { } } -void RenderObject::SetRenderHostRecursive(IRenderHost* host) { - SetRenderHost(host); +void RenderObject::SetRenderHostRecursive(UiHost* host) { + ui_host_ = host; for (const auto child : GetChildren()) { child->SetRenderHostRecursive(host); } } - } // namespace cru::ui::render |