From 23ef59b6aa14874e3b68c8716c137eb65583cd63 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 11 Apr 2020 00:01:51 +0800 Subject: ... --- src/ui/render/render_object.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/ui/render/render_object.cpp') 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 @@ -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 -- cgit v1.2.3