aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/render')
-rw-r--r--src/ui/render/canvas_render_object.cpp8
-rw-r--r--src/ui/render/layout_utility.cpp15
2 files changed, 21 insertions, 2 deletions
diff --git a/src/ui/render/canvas_render_object.cpp b/src/ui/render/canvas_render_object.cpp
index 0a442317..0508e276 100644
--- a/src/ui/render/canvas_render_object.cpp
+++ b/src/ui/render/canvas_render_object.cpp
@@ -1,5 +1,7 @@
#include "cru/ui/render/canvas_render_object.hpp"
+#include "cru/ui/render/layout_utility.hpp"
+
namespace cru::ui::render {
CanvasRenderObject::CanvasRenderObject() : RenderObject(ChildMode::None) {}
@@ -17,8 +19,10 @@ RenderObject* CanvasRenderObject::HitTest(const Point& point) {
}
Size CanvasRenderObject::OnMeasureContent(const Size& available_size) {
- return Size{};
+ return Min(available_size, GetDesiredSize());
}
-void CanvasRenderObject::OnLayoutContent(const Rect& content_rect) {}
+void CanvasRenderObject::OnLayoutContent(const Rect& content_rect) {
+ CRU_UNUSED(content_rect)
+}
} // namespace cru::ui::render
diff --git a/src/ui/render/layout_utility.cpp b/src/ui/render/layout_utility.cpp
new file mode 100644
index 00000000..aae62d35
--- /dev/null
+++ b/src/ui/render/layout_utility.cpp
@@ -0,0 +1,15 @@
+#include "cru/ui/render/layout_utility.hpp"
+
+#include <algorithm>
+
+namespace cru::ui::render {
+Size Min(const Size& left, const Size& right) {
+ return Size{std::min(left.width, right.width),
+ std::min(left.height, right.height)};
+}
+
+Size Max(const Size& left, const Size& right) {
+ return Size{std::max(left.width, right.width),
+ std::max(left.height, right.height)};
+}
+} // namespace cru::ui::render