aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/StackLayoutRenderObject.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-06-22 01:09:24 +0800
committercrupest <crupest@outlook.com>2020-06-22 01:09:24 +0800
commit4f0a2f32c273780c32cc3937615c2a8bbd993aab (patch)
tree6e1f45447854a40fe2d16ef9bec79f3c0fef030a /src/ui/render/StackLayoutRenderObject.cpp
parentd86a71f79afe0e4dac768f61d6bff690567aca5b (diff)
downloadcru-4f0a2f32c273780c32cc3937615c2a8bbd993aab.tar.gz
cru-4f0a2f32c273780c32cc3937615c2a8bbd993aab.tar.bz2
cru-4f0a2f32c273780c32cc3937615c2a8bbd993aab.zip
...
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),