Skip to content
Permalink
Browse files

Move trailing padding function as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6711897

fbshipit-source-id: fa2e1a8e31242358a6e94aef51368e2c2c58b79d
  • Loading branch information...
priteshrnandgaonkar authored and facebook-github-bot committed Jan 15, 2018
1 parent bd7bf94 commit 2fe65b032e9ec3faf3cef31290372b9face2d3f1
Showing with 19 additions and 21 deletions.
  1. +15 −0 ReactCommon/yoga/yoga/YGNode.cpp
  2. +1 −0 ReactCommon/yoga/yoga/YGNode.h
  3. +3 −21 ReactCommon/yoga/yoga/Yoga.cpp
@@ -645,3 +645,18 @@ float YGNode::getLeadingPadding(
widthSize),
0.0f);
}

float YGNode::getTrailingPadding(
const YGFlexDirection axis,
const float widthSize) {
if (YGFlexDirectionIsRow(axis) &&
style_.padding[YGEdgeEnd].unit != YGUnitUndefined &&
YGResolveValue(style_.padding[YGEdgeEnd], widthSize) >= 0.0f) {
return YGResolveValue(style_.padding[YGEdgeEnd], widthSize);
}
return fmaxf(
YGResolveValue(
*YGComputedEdgeValue(style_.padding, trailing[axis], &YGValueZero),
widthSize),
0.0f);
}
@@ -89,6 +89,7 @@ struct YGNode {
float getLeadingBorder(const YGFlexDirection flexDirection);
float getTrailingBorder(const YGFlexDirection flexDirection);
float getLeadingPadding(const YGFlexDirection axis, const float widthSize);
float getTrailingPadding(const YGFlexDirection axis, const float widthSize);
// Setters

void setContext(void* context);
@@ -762,23 +762,6 @@ static const std::array<YGEdge, 4> pos = {{
static const std::array<YGDimension, 4> dim = {
{YGDimensionHeight, YGDimensionHeight, YGDimensionWidth, YGDimensionWidth}};

static float YGNodeTrailingPadding(const YGNodeRef node,
const YGFlexDirection axis,
const float widthSize) {
if (YGFlexDirectionIsRow(axis) &&
node->getStyle().padding[YGEdgeEnd].unit != YGUnitUndefined &&
YGResolveValue(node->getStyle().padding[YGEdgeEnd], widthSize) >= 0.0f) {
return YGResolveValue(node->getStyle().padding[YGEdgeEnd], widthSize);
}

return fmaxf(
YGResolveValue(
*YGComputedEdgeValue(
node->getStyle().padding, trailing[axis], &YGValueZero),
widthSize),
0.0f);
}

static inline float YGNodeLeadingPaddingAndBorder(
const YGNodeRef node,
const YGFlexDirection axis,
@@ -790,7 +773,7 @@ static inline float YGNodeLeadingPaddingAndBorder(
static inline float YGNodeTrailingPaddingAndBorder(const YGNodeRef node,
const YGFlexDirection axis,
const float widthSize) {
return YGNodeTrailingPadding(node, axis, widthSize) +
return node->getTrailingPadding(axis, widthSize) +
node->getTrailingBorder(axis);
}

@@ -1741,12 +1724,11 @@ static void YGNodelayoutImpl(const YGNodeRef node,
node->setLayoutPadding(
node->getLeadingPadding(flexRowDirection, parentWidth), YGEdgeStart);
node->setLayoutPadding(
YGNodeTrailingPadding(node, flexRowDirection, parentWidth), YGEdgeEnd);
node->getTrailingPadding(flexRowDirection, parentWidth), YGEdgeEnd);
node->setLayoutPadding(
node->getLeadingPadding(flexColumnDirection, parentWidth), YGEdgeTop);
node->setLayoutPadding(
YGNodeTrailingPadding(node, flexColumnDirection, parentWidth),
YGEdgeBottom);
node->getTrailingPadding(flexColumnDirection, parentWidth), YGEdgeBottom);

if (node->getMeasure() != nullptr) {
YGNodeWithMeasureFuncSetMeasuredDimensions(node,

0 comments on commit 2fe65b0

Please sign in to comment.
You can’t perform that action at this time.