diff options
Diffstat (limited to 'include/cru/ui/render')
-rw-r--r-- | include/cru/ui/render/canvas_render_object.hpp | 4 | ||||
-rw-r--r-- | include/cru/ui/render/render_object.hpp | 3 |
2 files changed, 7 insertions, 0 deletions
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<CanvasPaintEventArgs>* PaintEvent() { return &paint_event_; } + protected: + Size OnMeasureContent(const Size& available_size) override; + void OnLayoutContent(const Rect& content_rect) override; + private: Event<CanvasPaintEventArgs> 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<AfterLayoutEventArgs>* 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 { |