Moved trailingmargin function as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6683313

fbshipit-source-id: 5ee458c2f4698768724901df0e3f5d8805c7c8f5
This commit is contained in:
Pritesh Nandgaonkar 2018-01-11 04:47:46 -08:00 committed by Facebook Github Bot
parent f0f4bee429
commit 89c14579d0
3 changed files with 24 additions and 27 deletions

View File

@ -150,6 +150,19 @@ float YGNode::getLeadingMargin(
widthSize);
}
float YGNode::getTrailingMargin(
const YGFlexDirection axis,
const float widthSize) {
if (YGFlexDirectionIsRow(axis) &&
style_.margin[YGEdgeEnd].unit != YGUnitUndefined) {
return YGResolveValueMargin(style_.margin[YGEdgeEnd], widthSize);
}
return YGResolveValueMargin(
*YGComputedEdgeValue(style_.margin, trailing[axis], &YGValueZero),
widthSize);
}
// Setters
void YGNode::setContext(void* context) {

View File

@ -82,7 +82,7 @@ struct YGNode {
bool isTrailingPosDefined(const YGFlexDirection axis);
float getTrailingPosition(const YGFlexDirection axis, const float axisSize);
float getLeadingMargin(const YGFlexDirection axis, const float widthSize);
float getTrailingMargin(const YGFlexDirection axis, const float widthSize);
// Setters
void setContext(void* context);

View File

@ -762,20 +762,6 @@ static const std::array<YGEdge, 4> pos = {{
static const std::array<YGDimension, 4> dim = {
{YGDimensionHeight, YGDimensionHeight, YGDimensionWidth, YGDimensionWidth}};
static float YGNodeTrailingMargin(const YGNodeRef node,
const YGFlexDirection axis,
const float widthSize) {
if (YGFlexDirectionIsRow(axis) &&
node->getStyle().margin[YGEdgeEnd].unit != YGUnitUndefined) {
return YGResolveValueMargin(node->getStyle().margin[YGEdgeEnd], widthSize);
}
return YGResolveValueMargin(
*YGComputedEdgeValue(
node->getStyle().margin, trailing[axis], &YGValueZero),
widthSize);
}
static float YGNodeLeadingPadding(const YGNodeRef node,
const YGFlexDirection axis,
const float widthSize) {
@ -859,7 +845,7 @@ static inline float YGNodeMarginForAxis(const YGNodeRef node,
const YGFlexDirection axis,
const float widthSize) {
return node->getLeadingMargin(axis, widthSize) +
YGNodeTrailingMargin(node, axis, widthSize);
node->getTrailingMargin(axis, widthSize);
}
static inline float YGNodePaddingAndBorderForAxis(const YGNodeRef node,
@ -959,7 +945,7 @@ static inline float YGNodeDimWithMargin(const YGNodeRef node,
const float widthSize) {
return node->getLayout().measuredDimensions[dim[axis]] +
node->getLeadingMargin(axis, widthSize) +
YGNodeTrailingMargin(node, axis, widthSize);
node->getTrailingMargin(axis, widthSize);
}
static inline bool YGNodeIsStyleDimDefined(const YGNodeRef node,
@ -1087,14 +1073,13 @@ static void YGNodeSetPosition(const YGNodeRef node,
node->getLeadingMargin(mainAxis, parentWidth) + relativePositionMain,
leading[mainAxis]);
node->setLayoutPosition(
YGNodeTrailingMargin(node, mainAxis, parentWidth) + relativePositionMain,
node->getTrailingMargin(mainAxis, parentWidth) + relativePositionMain,
trailing[mainAxis]);
node->setLayoutPosition(
node->getLeadingMargin(crossAxis, parentWidth) + relativePositionCross,
leading[crossAxis]);
node->setLayoutPosition(
YGNodeTrailingMargin(node, crossAxis, parentWidth) +
relativePositionCross,
node->getTrailingMargin(crossAxis, parentWidth) + relativePositionCross,
trailing[crossAxis]);
}
@ -1387,7 +1372,7 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node,
node->getLayout().measuredDimensions[dim[mainAxis]] -
child->getLayout().measuredDimensions[dim[mainAxis]] -
YGNodeTrailingBorder(node, mainAxis) -
YGNodeTrailingMargin(child, mainAxis, width) -
child->getTrailingMargin(mainAxis, width) -
child->getTrailingPosition(
mainAxis, isMainAxisRow ? width : height),
leading[mainAxis]);
@ -1414,7 +1399,7 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node,
node->getLayout().measuredDimensions[dim[crossAxis]] -
child->getLayout().measuredDimensions[dim[crossAxis]] -
YGNodeTrailingBorder(node, crossAxis) -
YGNodeTrailingMargin(child, crossAxis, width) -
child->getTrailingMargin(crossAxis, width) -
child->getTrailingPosition(
crossAxis, isMainAxisRow ? height : width),
leading[crossAxis]);
@ -1729,12 +1714,11 @@ static void YGNodelayoutImpl(const YGNodeRef node,
node->setLayoutMargin(
node->getLeadingMargin(flexRowDirection, parentWidth), YGEdgeStart);
node->setLayoutMargin(
YGNodeTrailingMargin(node, flexRowDirection, parentWidth), YGEdgeEnd);
node->getTrailingMargin(flexRowDirection, parentWidth), YGEdgeEnd);
node->setLayoutMargin(
node->getLeadingMargin(flexColumnDirection, parentWidth), YGEdgeTop);
node->setLayoutMargin(
YGNodeTrailingMargin(node, flexColumnDirection, parentWidth),
YGEdgeBottom);
node->getTrailingMargin(flexColumnDirection, parentWidth), YGEdgeBottom);
node->setLayoutBorder(
YGNodeLeadingBorder(node, flexRowDirection), YGEdgeStart);
@ -2767,8 +2751,8 @@ static void YGNodelayoutImpl(const YGNodeRef node,
case YGAlignFlexEnd: {
child->setLayoutPosition(
currentLead + lineHeight -
YGNodeTrailingMargin(
child, crossAxis, availableInnerWidth) -
child->getTrailingMargin(
crossAxis, availableInnerWidth) -
child->getLayout().measuredDimensions[dim[crossAxis]],
pos[crossAxis]);
break;