aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/render
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-03-17 15:04:16 +0800
committercrupest <crupest@outlook.com>2021-03-17 15:04:16 +0800
commitaf2e38b320905bf3b1e5d0969d0811c47289bbfe (patch)
tree18a55d5cf3fc5bea4ab342476dc5a57574808839 /include/cru/ui/render
parent7703063a5816b089483e78ccd74bb9902ccfbea8 (diff)
downloadcru-af2e38b320905bf3b1e5d0969d0811c47289bbfe.tar.gz
cru-af2e38b320905bf3b1e5d0969d0811c47289bbfe.tar.bz2
cru-af2e38b320905bf3b1e5d0969d0811c47289bbfe.zip
...
Diffstat (limited to 'include/cru/ui/render')
-rw-r--r--include/cru/ui/render/BorderRenderObject.hpp16
-rw-r--r--include/cru/ui/render/RenderObject.hpp2
-rw-r--r--include/cru/ui/render/ScrollRenderObject.hpp2
-rw-r--r--include/cru/ui/render/StackLayoutRenderObject.hpp4
-rw-r--r--include/cru/ui/render/TextRenderObject.hpp2
5 files changed, 19 insertions, 7 deletions
diff --git a/include/cru/ui/render/BorderRenderObject.hpp b/include/cru/ui/render/BorderRenderObject.hpp
index 3d4f4dad..34ad71d6 100644
--- a/include/cru/ui/render/BorderRenderObject.hpp
+++ b/include/cru/ui/render/BorderRenderObject.hpp
@@ -1,6 +1,8 @@
#pragma once
+#include <string_view>
#include "../style/ApplyBorderStyleInfo.hpp"
#include "RenderObject.hpp"
+#include "cru/platform/GraphBase.hpp"
#include "cru/ui/Base.hpp"
namespace cru::ui::render {
@@ -28,7 +30,7 @@ class BorderRenderObject : public RenderObject {
InvalidatePaint();
}
- Thickness GetBorderThickness() { return border_thickness_; }
+ Thickness GetBorderThickness() const { return border_thickness_; }
void SetBorderThickness(const Thickness thickness) {
if (thickness == border_thickness_) return;
@@ -68,21 +70,21 @@ class BorderRenderObject : public RenderObject {
RenderObject* HitTest(const Point& point) override;
+ Thickness GetOuterSpaceThickness() const override;
+ Rect GetPaddingRect() const override;
+ Rect GetContentRect() const override;
+
+ std::u16string_view GetName() const override { return u"BorderRenderObject"; }
+
protected:
void OnDrawCore(platform::graphics::IPainter* painter) override;
- Size OnMeasureCore(const MeasureRequirement& requirement,
- const MeasureSize& preferred_size) override;
- void OnLayoutCore() override;
Size OnMeasureContent(const MeasureRequirement& requirement,
const MeasureSize& preferred_size) override;
void OnLayoutContent(const Rect& content_rect) override;
void OnAfterLayout() override;
- Rect GetPaddingRect() const override;
- Rect GetContentRect() const override;
-
private:
void RecreateGeometry();
diff --git a/include/cru/ui/render/RenderObject.hpp b/include/cru/ui/render/RenderObject.hpp
index 8bcd4c62..622c27f2 100644
--- a/include/cru/ui/render/RenderObject.hpp
+++ b/include/cru/ui/render/RenderObject.hpp
@@ -4,6 +4,7 @@
#include "MeasureRequirement.hpp"
#include "cru/common/Base.hpp"
#include "cru/common/Event.hpp"
+#include "cru/platform/GraphBase.hpp"
#include "cru/ui/Base.hpp"
#include <cstddef>
@@ -131,6 +132,7 @@ class RenderObject : public Object {
// This will set offset of this render object and call OnLayoutCore.
void Layout(const Point& offset);
+ virtual Thickness GetOuterSpaceThickness() const;
virtual Rect GetPaddingRect() const;
virtual Rect GetContentRect() const;
diff --git a/include/cru/ui/render/ScrollRenderObject.hpp b/include/cru/ui/render/ScrollRenderObject.hpp
index aed25f8e..7b98ab72 100644
--- a/include/cru/ui/render/ScrollRenderObject.hpp
+++ b/include/cru/ui/render/ScrollRenderObject.hpp
@@ -60,6 +60,8 @@ class ScrollRenderObject : public RenderObject {
// Param margin is just for convenience and it will just add to the rect.
void ScrollToContain(const Rect& rect, const Thickness& margin = Thickness{});
+ std::u16string_view GetName() const override { return u"ScrollRenderObject"; }
+
protected:
void OnDrawCore(platform::graphics::IPainter* painter) override;
diff --git a/include/cru/ui/render/StackLayoutRenderObject.hpp b/include/cru/ui/render/StackLayoutRenderObject.hpp
index 303241c5..4f15ad11 100644
--- a/include/cru/ui/render/StackLayoutRenderObject.hpp
+++ b/include/cru/ui/render/StackLayoutRenderObject.hpp
@@ -31,6 +31,10 @@ class StackLayoutRenderObject
CRU_DELETE_MOVE(StackLayoutRenderObject)
~StackLayoutRenderObject() = default;
+ std::u16string_view GetName() const override {
+ return u"StackLayoutRenderObject";
+ }
+
protected:
Size OnMeasureContent(const MeasureRequirement& requirement,
const MeasureSize& preferred_size) override;
diff --git a/include/cru/ui/render/TextRenderObject.hpp b/include/cru/ui/render/TextRenderObject.hpp
index bdec18d1..cf585d6f 100644
--- a/include/cru/ui/render/TextRenderObject.hpp
+++ b/include/cru/ui/render/TextRenderObject.hpp
@@ -89,6 +89,8 @@ class TextRenderObject : public RenderObject {
RenderObject* HitTest(const Point& point) override;
+ std::u16string_view GetName() const override { return u"TextRenderObject"; }
+
protected:
void OnDrawContent(platform::graphics::IPainter* painter) override;