Add margin calculation in UI
This commit is contained in:
@@ -187,16 +187,20 @@ static void calculatePositionsFlexBox(BzUINode *node) {
|
||||
BZ_ASSERT(node->layout.type == BZ_UI_LAYOUT_FLEX_BOX);
|
||||
BzUIFlags flags = node->layout.flags;
|
||||
|
||||
f32 totalMainAxisSize = 0.0f;
|
||||
f32 totalMainAxisSize = 0.0f;
|
||||
f32 mainAxisSpacing = 0.0f;
|
||||
|
||||
const i32 MAIN_AXIS = (flags & BZ_UI_FLEX_DIR_COLUMN) ? BZ_UI_AXIS_Y : BZ_UI_AXIS_X;
|
||||
const i32 CROSS_AXIS = (flags & BZ_UI_FLEX_DIR_COLUMN) ? BZ_UI_AXIS_X : BZ_UI_AXIS_Y;
|
||||
|
||||
for (BzUINode *child = node->first; child; child = child->next) {
|
||||
totalMainAxisSize += child->computedSize[MAIN_AXIS];
|
||||
totalMainAxisSize += child->computedSize[MAIN_AXIS];
|
||||
mainAxisSpacing += child->margin[MAIN_AXIS] +
|
||||
child->margin[MAIN_AXIS + 2] +
|
||||
child->style.borderThickness * 2;
|
||||
}
|
||||
|
||||
f32 mainAxisTotalSpacing = node->computedSize[MAIN_AXIS] - totalMainAxisSize;
|
||||
f32 mainAxisTotalSpacing = node->computedSize[MAIN_AXIS] - totalMainAxisSize - mainAxisSpacing;
|
||||
mainAxisTotalSpacing = BZ_MAX(0, mainAxisTotalSpacing);
|
||||
|
||||
// Default: JUSTIFY_START
|
||||
@@ -219,7 +223,9 @@ static void calculatePositionsFlexBox(BzUINode *node) {
|
||||
axisOffset[CROSS_AXIS] += node->computedSize[CROSS_AXIS] - child->computedSize[CROSS_AXIS];
|
||||
}
|
||||
|
||||
axisOffset[MAIN_AXIS] += child->margin[MAIN_AXIS];
|
||||
calculatePositions(child, axisOffset[BZ_UI_AXIS_X], axisOffset[BZ_UI_AXIS_Y]);
|
||||
axisOffset[MAIN_AXIS] += child->margin[MAIN_AXIS + 2];
|
||||
axisOffset[MAIN_AXIS] += child->computedSize[MAIN_AXIS];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user