blob: 9ad2d862c60d791a0f0efd6a5ad951c5f9cfa906 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include "cru/ui/render/LayoutHelper.hpp"
#include "cru/common/Logger.hpp"
namespace cru::ui::render {
float CalculateAnchorByAlignment(Alignment alignment, float start_point,
float content_length, float child_length) {
switch (alignment) {
case FlexCrossAlignment::Start:
return start_point;
case FlexCrossAlignment::Center:
return start_point + (content_length - child_length) / 2.0f;
case FlexCrossAlignment::End:
return start_point + content_length - child_length;
default:
return start_point;
}
}
MeasureLength StackLayoutCalculateChildMaxLength(
MeasureLength parent_preferred_size, MeasureLength parent_max_size,
MeasureLength child_min_size, std::u16string_view log_tag,
std::u16string_view exceeds_message) {
if (parent_max_size.GetLengthOrMax() < child_min_size.GetLengthOr0()) {
log::TagWarn(log_tag, exceeds_message);
return parent_max_size;
}
if (parent_preferred_size.IsSpecified() &&
parent_preferred_size.GetLengthOrUndefined() >=
child_min_size.GetLengthOr0()) {
return parent_preferred_size;
} else {
return parent_max_size;
}
}
} // namespace cru::ui::render
|