aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/render
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-03-03 00:39:10 +0800
committercrupest <crupest@outlook.com>2020-03-03 00:39:10 +0800
commitb0946c0e6dc163fe981f230302a1976449150907 (patch)
tree3786417609ec00e42c0e9a102c39238135dfc9b5 /include/cru/ui/render
parentebb8f7beba71fc0d3cd81f60559e4005e05e48d5 (diff)
downloadcru-b0946c0e6dc163fe981f230302a1976449150907.tar.gz
cru-b0946c0e6dc163fe981f230302a1976449150907.tar.bz2
cru-b0946c0e6dc163fe981f230302a1976449150907.zip
...
Diffstat (limited to 'include/cru/ui/render')
-rw-r--r--include/cru/ui/render/canvas_render_object.hpp4
-rw-r--r--include/cru/ui/render/render_object.hpp3
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 {