diff options
Diffstat (limited to 'src/ui/render')
-rw-r--r-- | src/ui/render/render_object.cpp | 19 | ||||
-rw-r--r-- | src/ui/render/render_object.hpp | 20 |
2 files changed, 7 insertions, 32 deletions
diff --git a/src/ui/render/render_object.cpp b/src/ui/render/render_object.cpp index 0035d1be..0a0e693c 100644 --- a/src/ui/render/render_object.cpp +++ b/src/ui/render/render_object.cpp @@ -3,14 +3,6 @@ #include "cru_debug.hpp" namespace cru::ui::render { -void RenderObject::SetRenderHost(IRenderHost* new_render_host) { - if (new_render_host == render_host_) return; - - const auto old = render_host_; - render_host_ = new_render_host; - OnRenderHostChanged(old, new_render_host); -} - void RenderObject::AddChild(RenderObject* render_object, const int position) { if (render_object->GetParent() != nullptr) throw std::invalid_argument("Render object already has a parent."); @@ -52,17 +44,6 @@ void RenderObject::Layout(const Rect& rect) { OnLayoutCore(Rect{Point::Zero(), rect.GetSize()}); } -void RenderObject::OnRenderHostChanged(IRenderHost* old_render_host, - IRenderHost* new_render_host) {} - -void RenderObject::InvalidateRenderHostPaint() const { - if (render_host_ != nullptr) render_host_->InvalidatePaint(); -} - -void RenderObject::InvalidateRenderHostLayout() const { - if (render_host_ != nullptr) render_host_->InvalidateLayout(); -} - void RenderObject::OnParentChanged(RenderObject* old_parent, RenderObject* new_parent) {} diff --git a/src/ui/render/render_object.hpp b/src/ui/render/render_object.hpp index aeba1457..34f5dcee 100644 --- a/src/ui/render/render_object.hpp +++ b/src/ui/render/render_object.hpp @@ -8,11 +8,11 @@ #include "base.hpp" #include "ui/ui_base.hpp" +namespace cru::ui { +class Control; +} + namespace cru::ui::render { -struct IRenderHost : Interface { - virtual void InvalidatePaint() = 0; - virtual void InvalidateLayout() = 0; -}; class RenderObject : public Object { protected: @@ -25,8 +25,8 @@ class RenderObject : public Object { RenderObject& operator=(RenderObject&& other) = delete; ~RenderObject() override = default; - IRenderHost* GetRenderHost() const { return render_host_; } - void SetRenderHost(IRenderHost* new_render_host); + Control* GetAttachedControl() const { return control_; } + void SetAttachedControl(Control* new_control) { control_ = new_control; } RenderObject* GetParent() const { return parent_; } @@ -58,12 +58,6 @@ class RenderObject : public Object { virtual RenderObject* HitTest(const Point& point) = 0; protected: - virtual void OnRenderHostChanged(IRenderHost* old_render_host, - IRenderHost* new_render_host); - - void InvalidateRenderHostPaint() const; - void InvalidateRenderHostLayout() const; - virtual void OnParentChanged(RenderObject* old_parent, RenderObject* new_parent); @@ -80,7 +74,7 @@ class RenderObject : public Object { void OnLayoutCore(const Rect& rect); private: - IRenderHost* render_host_ = nullptr; + Control* control_ = nullptr; RenderObject* parent_ = nullptr; std::vector<RenderObject*> children_{}; |