aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/StackLayoutRenderObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/render/StackLayoutRenderObject.cpp')
-rw-r--r--src/ui/render/StackLayoutRenderObject.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/ui/render/StackLayoutRenderObject.cpp b/src/ui/render/StackLayoutRenderObject.cpp
index d08e136d..7dce1a83 100644
--- a/src/ui/render/StackLayoutRenderObject.cpp
+++ b/src/ui/render/StackLayoutRenderObject.cpp
@@ -3,13 +3,14 @@
#include <algorithm>
namespace cru::ui::render {
-Size StackLayoutRenderObject::OnMeasureContent(const Size& available_size) {
+Size StackLayoutRenderObject::OnMeasureContent(
+ const MeasureRequirement& requirement) {
auto size = Size{};
for (const auto child : GetChildren()) {
- child->Measure(available_size);
- const auto& preferred_size = child->GetPreferredSize();
- size.width = std::max(size.width, preferred_size.width);
- size.height = std::max(size.height, preferred_size.height);
+ child->Measure(requirement);
+ const auto& measure_result = child->GetMeasuredSize();
+ size.width = std::max(size.width, measure_result.width);
+ size.height = std::max(size.height, measure_result.height);
}
return size;
}
@@ -26,7 +27,7 @@ void StackLayoutRenderObject::OnLayoutContent(const Rect& rect) {
case internal::align_end:
return start_point + total_length - content_length;
default:
- return 0;
+ return start_point;
}
};
@@ -36,7 +37,7 @@ void StackLayoutRenderObject::OnLayoutContent(const Rect& rect) {
for (int i = 0; i < count; i++) {
const auto layout_data = GetChildLayoutData(i);
const auto child = children[i];
- const auto& size = child->GetPreferredSize();
+ const auto& size = child->GetMeasuredSize();
child->Layout(
Rect{calculate_anchor(static_cast<int>(layout_data->horizontal),
rect.left, rect.width, size.width),