aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/TreeRenderObject.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-22 21:24:18 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-22 21:24:18 +0800
commit8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168 (patch)
tree435917530667bd4532c9bb70826c5796ca1ffa6a /src/ui/render/TreeRenderObject.cpp
parent7ce185d5a3fcfad8c8f746f95f3d50a8829faac4 (diff)
downloadcru-8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168.tar.gz
cru-8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168.tar.bz2
cru-8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168.zip
Clean measure requirement codes.
Diffstat (limited to 'src/ui/render/TreeRenderObject.cpp')
-rw-r--r--src/ui/render/TreeRenderObject.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/ui/render/TreeRenderObject.cpp b/src/ui/render/TreeRenderObject.cpp
index 8c13e93a..758108f6 100644
--- a/src/ui/render/TreeRenderObject.cpp
+++ b/src/ui/render/TreeRenderObject.cpp
@@ -101,12 +101,12 @@ static Size MeasureTreeRenderObjectItem(MeasureSize max_size,
float tab_width) {
auto render_object = item->GetRenderObject();
if (render_object) {
- render_object->Measure(
- MeasureRequirement(max_size, MeasureSize::NotSpecified()),
- MeasureSize::NotSpecified());
+ render_object->Measure(MeasureRequirement(
+ max_size, MeasureSize::NotSpecified(), MeasureSize::NotSpecified()));
}
- Size item_size = render_object ? render_object->GetDesiredSize() : Size{};
+ Size item_size =
+ render_object ? render_object->GetMeasureResultSize() : Size{};
if (max_size.width.IsSpecified()) {
max_size.width = max_size.width.GetLengthOrUndefined() - tab_width;
@@ -128,14 +128,10 @@ static Size MeasureTreeRenderObjectItem(MeasureSize max_size,
return result_size;
}
-Size TreeRenderObject::OnMeasureContent(const MeasureRequirement& requirement,
- const MeasureSize& preferred_size) {
+Size TreeRenderObject::OnMeasureContent(const MeasureRequirement& requirement) {
auto size =
MeasureTreeRenderObjectItem(requirement.max, root_item_, tab_width_);
-
- size = Max(size, requirement.min.GetSizeOr0());
-
- return size;
+ return requirement.ExpandToSuggestAndCoerce(size);
}
static void LayoutTreeRenderObjectItem(Rect rect, TreeRenderObjectItem* item,
@@ -144,7 +140,7 @@ static void LayoutTreeRenderObjectItem(Rect rect, TreeRenderObjectItem* item,
float item_height = 0.f;
if (render_object) {
render_object->Layout(rect.GetLeftTop());
- item_height = render_object->GetDesiredSize().height;
+ item_height = render_object->GetMeasureResultSize().height;
}
rect.left += tab_width;
@@ -156,7 +152,7 @@ static void LayoutTreeRenderObjectItem(Rect rect, TreeRenderObjectItem* item,
LayoutTreeRenderObjectItem(rect, child, tab_width);
auto child_render_object = child->GetRenderObject();
auto child_height = child_render_object
- ? child_render_object->GetDesiredSize().height
+ ? child_render_object->GetMeasureResultSize().height
: 0.f;
rect.top += child_height;
rect.height -= child_height;