Resolve direction function is now as a method on YGNode
Summary: Resolve direction function is now as a method on YGNode Reviewed By: emilsjolander Differential Revision: D6711755 fbshipit-source-id: a0e80596e10f0c7fb7a31b75377da4db846c4bbb
This commit is contained in:
committed by
Facebook Github Bot
parent
9d6af5b314
commit
0a04bd7f2f
@@ -510,6 +510,15 @@ void YGNode::resolveDimension() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
YGDirection YGNode::resolveDirection(const YGDirection parentDirection) {
|
||||||
|
if (style_.direction == YGDirectionInherit) {
|
||||||
|
return parentDirection > YGDirectionInherit ? parentDirection
|
||||||
|
: YGDirectionLTR;
|
||||||
|
} else {
|
||||||
|
return style_.direction;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void YGNode::clearChildren() {
|
void YGNode::clearChildren() {
|
||||||
children_.clear();
|
children_.clear();
|
||||||
children_.shrink_to_fit();
|
children_.shrink_to_fit();
|
||||||
|
@@ -129,6 +129,7 @@ struct YGNode {
|
|||||||
YGValue marginTrailingValue(const YGFlexDirection axis) const;
|
YGValue marginTrailingValue(const YGFlexDirection axis) const;
|
||||||
YGValue resolveFlexBasisPtr() const;
|
YGValue resolveFlexBasisPtr() const;
|
||||||
void resolveDimension();
|
void resolveDimension();
|
||||||
|
YGDirection resolveDirection(const YGDirection parentDirection);
|
||||||
void clearChildren();
|
void clearChildren();
|
||||||
/// Replaces the occurrences of oldChild with newChild
|
/// Replaces the occurrences of oldChild with newChild
|
||||||
void replaceChild(YGNodeRef oldChild, YGNodeRef newChild);
|
void replaceChild(YGNodeRef oldChild, YGNodeRef newChild);
|
||||||
|
@@ -837,15 +837,6 @@ static inline YGAlign YGNodeAlignItem(const YGNodeRef node, const YGNodeRef chil
|
|||||||
return align;
|
return align;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline YGDirection YGNodeResolveDirection(const YGNodeRef node,
|
|
||||||
const YGDirection parentDirection) {
|
|
||||||
if (node->getStyle().direction == YGDirectionInherit) {
|
|
||||||
return parentDirection > YGDirectionInherit ? parentDirection : YGDirectionLTR;
|
|
||||||
} else {
|
|
||||||
return node->getStyle().direction;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static float YGBaseline(const YGNodeRef node) {
|
static float YGBaseline(const YGNodeRef node) {
|
||||||
if (node->getBaseline() != nullptr) {
|
if (node->getBaseline() != nullptr) {
|
||||||
const float baseline = node->getBaseline()(
|
const float baseline = node->getBaseline()(
|
||||||
@@ -1602,8 +1593,7 @@ static void YGNodeComputeFlexBasisForChildren(
|
|||||||
}
|
}
|
||||||
if (performLayout) {
|
if (performLayout) {
|
||||||
// Set the initial position (relative to the parent).
|
// Set the initial position (relative to the parent).
|
||||||
const YGDirection childDirection =
|
const YGDirection childDirection = child->resolveDirection(direction);
|
||||||
YGNodeResolveDirection(child, direction);
|
|
||||||
const float mainDim = YGFlexDirectionIsRow(mainAxis)
|
const float mainDim = YGFlexDirectionIsRow(mainAxis)
|
||||||
? availableInnerWidth
|
? availableInnerWidth
|
||||||
: availableInnerHeight;
|
: availableInnerHeight;
|
||||||
@@ -1744,7 +1734,7 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
"YGMeasureModeUndefined");
|
"YGMeasureModeUndefined");
|
||||||
|
|
||||||
// Set the resolved resolution in the node's layout.
|
// Set the resolved resolution in the node's layout.
|
||||||
const YGDirection direction = YGNodeResolveDirection(node, parentDirection);
|
const YGDirection direction = node->resolveDirection(parentDirection);
|
||||||
node->setLayoutDirection(direction);
|
node->setLayoutDirection(direction);
|
||||||
|
|
||||||
const YGFlexDirection flexRowDirection = YGResolveFlexDirection(YGFlexDirectionRow, direction);
|
const YGFlexDirection flexRowDirection = YGResolveFlexDirection(YGFlexDirectionRow, direction);
|
||||||
|
Reference in New Issue
Block a user