aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/stack_layout_render_object.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-05-24 01:40:02 +0800
committercrupest <crupest@outlook.com>2020-05-24 01:40:02 +0800
commitd86a71f79afe0e4dac768f61d6bff690567aca5b (patch)
tree4957e9a64c77680deb07201fbd879bf036616dae /src/ui/render/stack_layout_render_object.cpp
parentf3a8fd608a9776ef0a5f547da918a32cf6074060 (diff)
downloadcru-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.cpp49
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