diff options
Diffstat (limited to 'src/ui/render/StackLayoutRenderObject.cpp')
-rw-r--r-- | src/ui/render/StackLayoutRenderObject.cpp | 15 |
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), |