Moved leading padding function as a method on YGNode

Summary: Moved leading padding function as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6711830

fbshipit-source-id: d2f6f55ec23b007bb51f8a91385e02236f46dc7b
This commit is contained in:
Pritesh Nandgaonkar
2018-01-15 10:09:51 -08:00
committed by Facebook Github Bot
parent 0a04bd7f2f
commit adb2e0fdd6
3 changed files with 20 additions and 21 deletions

View File

@@ -630,3 +630,18 @@ float YGNode::getTrailingBorder(const YGFlexDirection flexDirection) {
->value, ->value,
0.0f); 0.0f);
} }
float YGNode::getLeadingPadding(
const YGFlexDirection axis,
const float widthSize) {
if (YGFlexDirectionIsRow(axis) &&
style_.padding[YGEdgeStart].unit != YGUnitUndefined &&
YGResolveValue(style_.padding[YGEdgeStart], widthSize) >= 0.0f) {
return YGResolveValue(style_.padding[YGEdgeStart], widthSize);
}
return fmaxf(
YGResolveValue(
*YGComputedEdgeValue(style_.padding, leading[axis], &YGValueZero),
widthSize),
0.0f);
}

View File

@@ -79,6 +79,7 @@ struct YGNode {
std::array<YGValue, 2> getResolvedDimensions() const; std::array<YGValue, 2> getResolvedDimensions() const;
YGValue getResolvedDimension(int index); YGValue getResolvedDimension(int index);
// Methods related to positions, margin, padding and border
float getLeadingPosition(const YGFlexDirection axis, const float axisSize); float getLeadingPosition(const YGFlexDirection axis, const float axisSize);
bool isLeadingPositionDefined(const YGFlexDirection axis); bool isLeadingPositionDefined(const YGFlexDirection axis);
bool isTrailingPosDefined(const YGFlexDirection axis); bool isTrailingPosDefined(const YGFlexDirection axis);
@@ -87,6 +88,7 @@ struct YGNode {
float getTrailingMargin(const YGFlexDirection axis, const float widthSize); float getTrailingMargin(const YGFlexDirection axis, const float widthSize);
float getLeadingBorder(const YGFlexDirection flexDirection); float getLeadingBorder(const YGFlexDirection flexDirection);
float getTrailingBorder(const YGFlexDirection flexDirection); float getTrailingBorder(const YGFlexDirection flexDirection);
float getLeadingPadding(const YGFlexDirection axis, const float widthSize);
// Setters // Setters
void setContext(void* context); void setContext(void* context);

View File

@@ -762,24 +762,6 @@ static const std::array<YGEdge, 4> pos = {{
static const std::array<YGDimension, 4> dim = { static const std::array<YGDimension, 4> dim = {
{YGDimensionHeight, YGDimensionHeight, YGDimensionWidth, YGDimensionWidth}}; {YGDimensionHeight, YGDimensionHeight, YGDimensionWidth, YGDimensionWidth}};
static float YGNodeLeadingPadding(const YGNodeRef node,
const YGFlexDirection axis,
const float widthSize) {
if (YGFlexDirectionIsRow(axis) &&
node->getStyle().padding[YGEdgeStart].unit != YGUnitUndefined &&
YGResolveValue(node->getStyle().padding[YGEdgeStart], widthSize) >=
0.0f) {
return YGResolveValue(node->getStyle().padding[YGEdgeStart], widthSize);
}
return fmaxf(
YGResolveValue(
*YGComputedEdgeValue(
node->getStyle().padding, leading[axis], &YGValueZero),
widthSize),
0.0f);
}
static float YGNodeTrailingPadding(const YGNodeRef node, static float YGNodeTrailingPadding(const YGNodeRef node,
const YGFlexDirection axis, const YGFlexDirection axis,
const float widthSize) { const float widthSize) {
@@ -801,7 +783,7 @@ static inline float YGNodeLeadingPaddingAndBorder(
const YGNodeRef node, const YGNodeRef node,
const YGFlexDirection axis, const YGFlexDirection axis,
const float widthSize) { const float widthSize) {
return YGNodeLeadingPadding(node, axis, widthSize) + return node->getLeadingPadding(axis, widthSize) +
node->getLeadingBorder(axis); node->getLeadingBorder(axis);
} }
@@ -1757,11 +1739,11 @@ static void YGNodelayoutImpl(const YGNodeRef node,
node->getTrailingBorder(flexColumnDirection), YGEdgeBottom); node->getTrailingBorder(flexColumnDirection), YGEdgeBottom);
node->setLayoutPadding( node->setLayoutPadding(
YGNodeLeadingPadding(node, flexRowDirection, parentWidth), YGEdgeStart); node->getLeadingPadding(flexRowDirection, parentWidth), YGEdgeStart);
node->setLayoutPadding( node->setLayoutPadding(
YGNodeTrailingPadding(node, flexRowDirection, parentWidth), YGEdgeEnd); YGNodeTrailingPadding(node, flexRowDirection, parentWidth), YGEdgeEnd);
node->setLayoutPadding( node->setLayoutPadding(
YGNodeLeadingPadding(node, flexColumnDirection, parentWidth), YGEdgeTop); node->getLeadingPadding(flexColumnDirection, parentWidth), YGEdgeTop);
node->setLayoutPadding( node->setLayoutPadding(
YGNodeTrailingPadding(node, flexColumnDirection, parentWidth), YGNodeTrailingPadding(node, flexColumnDirection, parentWidth),
YGEdgeBottom); YGEdgeBottom);