diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-22 21:24:18 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-22 21:24:18 +0800 |
| commit | 8f8b7dfd056dfa23dd1989d3f3dfd3d5d91d0168 (patch) | |
| tree | 435917530667bd4532c9bb70826c5796ca1ffa6a /src/ui/render/TreeRenderObject.cpp | |
| parent | 7ce185d5a3fcfad8c8f746f95f3d50a8829faac4 (diff) | |
| download | cru-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.cpp | 20 |
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; |
