aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/render/CanvasRenderObject.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-22 21:24:18 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-22 21:24:18 +0800
commit8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168 (patch)
tree435917530667bd4532c9bb70826c5796ca1ffa6a /include/cru/ui/render/CanvasRenderObject.h
parent7ce185d5a3fcfad8c8f746f95f3d50a8829faac4 (diff)
downloadcru-8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168.tar.gz
cru-8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168.tar.bz2
cru-8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168.zip
Clean measure requirement codes.
Diffstat (limited to 'include/cru/ui/render/CanvasRenderObject.h')
-rw-r--r--include/cru/ui/render/CanvasRenderObject.h26
1 files changed, 9 insertions, 17 deletions
diff --git a/include/cru/ui/render/CanvasRenderObject.h b/include/cru/ui/render/CanvasRenderObject.h
index 63da9cd9..2e44fcc2 100644
--- a/include/cru/ui/render/CanvasRenderObject.h
+++ b/include/cru/ui/render/CanvasRenderObject.h
@@ -9,9 +9,6 @@ class CanvasPaintEventArgs {
CanvasPaintEventArgs(platform::graphics::IPainter* painter,
const Size& paint_size)
: painter_(painter), paint_size_(paint_size) {}
- CRU_DEFAULT_COPY(CanvasPaintEventArgs)
- CRU_DEFAULT_MOVE(CanvasPaintEventArgs)
- ~CanvasPaintEventArgs() = default;
platform::graphics::IPainter* GetPainter() const { return painter_; }
Size GetPaintSize() const { return paint_size_; }
@@ -21,9 +18,12 @@ class CanvasPaintEventArgs {
Size paint_size_;
};
-// Layout logic:
-// If no preferred size is set. Then (100, 100) is used and then coerced to
-// required range.
+/**
+ * Layout logic:
+ * Preferred
+ * If no preferred size is set. Then (100, 100) is used and then coerced to
+ * required range.
+ */
class CRU_UI_API CanvasRenderObject : public RenderObject {
public:
static constexpr auto kRenderObjectName = "CanvasRenderObject";
@@ -33,20 +33,12 @@ class CRU_UI_API CanvasRenderObject : public RenderObject {
public:
RenderObject* HitTest(const Point& point) override;
- Size GetDesiredSize() { return desired_size_; }
-
- IEvent<CanvasPaintEventArgs>* PaintEvent() { return &paint_event_; }
-
void Draw(platform::graphics::IPainter* painter) override;
+ CRU_DEFINE_EVENT(Paint, const CanvasPaintEventArgs&)
+
protected:
- Size OnMeasureContent(const MeasureRequirement& requirement,
- const MeasureSize& preferred_size) override;
+ Size OnMeasureContent(const MeasureRequirement& requirement) override;
void OnLayoutContent(const Rect& content_rect) override;
-
- private:
- Size desired_size_{};
-
- Event<CanvasPaintEventArgs> paint_event_;
};
} // namespace cru::ui::render