diff options
author | crupest <crupest@outlook.com> | 2020-05-24 01:40:02 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-05-24 01:40:02 +0800 |
commit | d86a71f79afe0e4dac768f61d6bff690567aca5b (patch) | |
tree | 4957e9a64c77680deb07201fbd879bf036616dae /src/ui/render/stack_layout_render_object.cpp | |
parent | f3a8fd608a9776ef0a5f547da918a32cf6074060 (diff) | |
download | cru-d86a71f79afe0e4dac768f61d6bff690567aca5b.tar.gz cru-d86a71f79afe0e4dac768f61d6bff690567aca5b.tar.bz2 cru-d86a71f79afe0e4dac768f61d6bff690567aca5b.zip |
...
Diffstat (limited to 'src/ui/render/stack_layout_render_object.cpp')
-rw-r--r-- | src/ui/render/stack_layout_render_object.cpp | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/ui/render/stack_layout_render_object.cpp b/src/ui/render/stack_layout_render_object.cpp deleted file mode 100644 index 1cb31252..00000000 --- a/src/ui/render/stack_layout_render_object.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "cru/ui/render/stack_layout_render_object.hpp" - -#include <algorithm> - -namespace cru::ui::render { -Size StackLayoutRenderObject::OnMeasureContent(const Size& available_size) { - 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); - } - return size; -} - -void StackLayoutRenderObject::OnLayoutContent(const Rect& rect) { - auto calculate_anchor = [](int alignment, float start_point, - float total_length, - float content_length) -> float { - switch (alignment) { - case internal::align_start: - return start_point; - case internal::align_center: - return start_point + (total_length - content_length) / 2.0f; - case internal::align_end: - return start_point + total_length - content_length; - default: - return 0; - } - }; - - const auto count = GetChildCount(); - const auto& children = GetChildren(); - - for (int i = 0; i < count; i++) { - const auto layout_data = GetChildLayoutData(i); - const auto child = children[i]; - const auto& size = child->GetPreferredSize(); - child->Layout( - Rect{calculate_anchor(static_cast<int>(layout_data->horizontal), - rect.left, rect.width, size.width), - calculate_anchor(static_cast<int>(layout_data->vertical), rect.top, - rect.height, size.height), - size.width, size.height}); - } -} - -} // namespace cru::ui::render |