From b0946c0e6dc163fe981f230302a1976449150907 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 3 Mar 2020 00:39:10 +0800 Subject: ... --- include/cru/ui/render/canvas_render_object.hpp | 4 ++++ include/cru/ui/render/render_object.hpp | 3 +++ 2 files changed, 7 insertions(+) (limited to 'include/cru/ui/render') diff --git a/include/cru/ui/render/canvas_render_object.hpp b/include/cru/ui/render/canvas_render_object.hpp index fea68576..5fea8755 100644 --- a/include/cru/ui/render/canvas_render_object.hpp +++ b/include/cru/ui/render/canvas_render_object.hpp @@ -37,6 +37,10 @@ class CanvasRenderObject : public RenderObject { IEvent* PaintEvent() { return &paint_event_; } + protected: + Size OnMeasureContent(const Size& available_size) override; + void OnLayoutContent(const Rect& content_rect) override; + private: Event paint_event_; }; diff --git a/include/cru/ui/render/render_object.hpp b/include/cru/ui/render/render_object.hpp index b0a65819..0f0cb8df 100644 --- a/include/cru/ui/render/render_object.hpp +++ b/include/cru/ui/render/render_object.hpp @@ -32,6 +32,9 @@ struct IRenderHost : Interface { virtual IEvent* AfterLayoutEvent() = 0; }; +// Render object will not destroy its children when destroyed. Control must +// manage lifecycle of its render objects. Since control will destroy its +// children when destroyed, render objects will be destroyed along with it. class RenderObject : public Object { protected: enum class ChildMode { -- cgit v1.2.3