aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui/CMakeLists.txt2
-rw-r--r--src/ui/render/canvas_render_object.cpp8
-rw-r--r--src/ui/render/layout_utility.cpp15
3 files changed, 23 insertions, 2 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index cb34e590..2220740e 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -21,6 +21,7 @@ add_library(cru_ui STATIC
render/border_render_object.cpp
render/canvas_render_object.cpp
render/flex_layout_render_object.cpp
+ render/layout_utility.cpp
render/render_object.cpp
render/stack_layout_render_object.cpp
render/text_render_object.cpp
@@ -46,6 +47,7 @@ target_sources(cru_ui PUBLIC
${CRU_UI_INCLUDE_DIR}/render/canvas_render_object.hpp
${CRU_UI_INCLUDE_DIR}/render/flex_layout_render_object.hpp
${CRU_UI_INCLUDE_DIR}/render/layout_render_object.hpp
+ ${CRU_UI_INCLUDE_DIR}/render/layout_utility.hpp
${CRU_UI_INCLUDE_DIR}/render/render_object.hpp
${CRU_UI_INCLUDE_DIR}/render/stack_layout_render_object.hpp
${CRU_UI_INCLUDE_DIR}/render/text_render_object.hpp
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