aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/render')
-rw-r--r--src/ui/render/render_object.cpp19
-rw-r--r--src/ui/render/render_object.hpp20
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_{};