aboutsummaryrefslogtreecommitdiff
path: root/CruUI/ui/controls/linear_layout.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-09-21 23:20:44 +0800
committercrupest <crupest@outlook.com>2018-09-21 23:20:44 +0800
commitf9d3795e6dbb33fa5ffc0cb6e990462c4dd4974c (patch)
treed7c7deb89c10944ccbdeafb4dd89ca492e4608b6 /CruUI/ui/controls/linear_layout.cpp
parent82a45e611a2638cff7e3fffc09ba4569ca53a274 (diff)
downloadcru-f9d3795e6dbb33fa5ffc0cb6e990462c4dd4974c.tar.gz
cru-f9d3795e6dbb33fa5ffc0cb6e990462c4dd4974c.tar.bz2
cru-f9d3795e6dbb33fa5ffc0cb6e990462c4dd4974c.zip
Move alignment property into layout params.
Diffstat (limited to 'CruUI/ui/controls/linear_layout.cpp')
-rw-r--r--CruUI/ui/controls/linear_layout.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/CruUI/ui/controls/linear_layout.cpp b/CruUI/ui/controls/linear_layout.cpp
index 66005b2e..116802ba 100644
--- a/CruUI/ui/controls/linear_layout.cpp
+++ b/CruUI/ui/controls/linear_layout.cpp
@@ -25,7 +25,7 @@ namespace cru::ui::controls
if (!layout_params->Validate())
throw std::runtime_error("LayoutParams is not valid. Please check it.");
- auto&& get_available_length_for_child = [](const MeasureLength& layout_length, const float available_length) -> float
+ auto&& get_available_length_for_child = [](const LayoutLength& layout_length, const float available_length) -> float
{
switch (layout_length.mode)
{
@@ -119,7 +119,7 @@ namespace cru::ui::controls
actual_size_for_children.height -= rest_available_size_for_children.height;
}
- auto&& calculate_final_length = [](const MeasureLength& layout_length, const float length_for_children, const float max_child_length) -> float
+ auto&& calculate_final_length = [](const LayoutLength& layout_length, const float length_for_children, const float max_child_length) -> float
{
switch (layout_length.mode)
{
@@ -144,8 +144,9 @@ namespace cru::ui::controls
float current_anchor_length = 0;
ForeachChild([this, &current_anchor_length, rect](Control* control)
{
+ const auto layout_params = control->GetLayoutParams();
const auto size = control->GetDesiredSize();
- const auto alignment = GetAlignment(control);
+ const auto alignment = orientation_ == Orientation::Horizontal ? layout_params->height.alignment : layout_params->width.alignment;
auto&& calculate_anchor = [alignment](const float layout_length, const float control_length) -> float
{