ADD: Align Items
This commit is contained in:
parent
ced743e915
commit
beca6e4d3b
@ -50,6 +50,7 @@ struct LayoutStyle {
|
||||
|
||||
FlexDirection flexDirection = FlexDirection::Column;
|
||||
JustifyContent justifyContent = JustifyContent::Start;
|
||||
AlignItems alignItems = AlignItems::Start;
|
||||
|
||||
float flexGrow = 0.0f;
|
||||
};
|
||||
|
||||
@ -61,6 +61,52 @@ void UiPositioner::compute(const Dimensions &parent) {
|
||||
}
|
||||
}
|
||||
|
||||
// AlignItems
|
||||
for (auto& child : uiComponent.children) {
|
||||
if (style.flexDirection == FlexDirection::Column) {
|
||||
float marginLeft = child->uiPositioner.resolve(child->uiPositioner.style.margin.left,screenSpace.width,screenWidth);
|
||||
float remainingCrossSpace = screenSpace.width - child->uiPositioner.screenSpace.width ;
|
||||
switch (style.alignItems) {
|
||||
case AlignItems::Start:
|
||||
child->uiPositioner.screenSpace.x = screenSpace.x + marginLeft;
|
||||
break;
|
||||
|
||||
case AlignItems::Center:
|
||||
child->uiPositioner.screenSpace.x =
|
||||
screenSpace.x + remainingCrossSpace / 2.0f + marginLeft;
|
||||
break;
|
||||
|
||||
case AlignItems::End:
|
||||
child->uiPositioner.screenSpace.x = screenSpace.x + remainingCrossSpace + marginLeft;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
float remainingCrossSpace = screenSpace.height - child->uiPositioner.screenSpace.height;
|
||||
float marginTop = child->uiPositioner.resolve(child->uiPositioner.style.margin.top,screenSpace.height,screenHeight);
|
||||
switch (style.alignItems) {
|
||||
case AlignItems::Start:
|
||||
child->uiPositioner.screenSpace.y = screenSpace.y + marginTop;
|
||||
break;
|
||||
|
||||
case AlignItems::Center:
|
||||
child->uiPositioner.screenSpace.y =
|
||||
screenSpace.y + remainingCrossSpace / 2.0f + marginTop;
|
||||
break;
|
||||
|
||||
case AlignItems::End:
|
||||
child->uiPositioner.screenSpace.y =
|
||||
screenSpace.y + remainingCrossSpace + marginTop;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
LayoutStyle & UiPositioner::getLayout() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user