SharedDebugStringConvertibleList LayoutableShadowNode::getDebugProps() const { SharedDebugStringConvertibleList list = {}; if (getHasNewLayout()) { list.push_back(std::make_shared<DebugStringConvertibleItem>("hasNewLayout")); } if (!getIsLayoutClean()) { list.push_back(std::make_shared<DebugStringConvertibleItem>("dirty")); } LayoutMetrics layoutMetrics = getLayoutMetrics(); LayoutMetrics defaultLayoutMetrics = LayoutMetrics(); list.push_back(std::make_shared<DebugStringConvertibleItem>("frame", toString(layoutMetrics.frame))); if (layoutMetrics.borderWidth != defaultLayoutMetrics.borderWidth) { list.push_back(std::make_shared<DebugStringConvertibleItem>("borderWidth", toString(layoutMetrics.borderWidth))); } if (layoutMetrics.contentInsets != defaultLayoutMetrics.contentInsets) { list.push_back(std::make_shared<DebugStringConvertibleItem>("contentInsets", toString(layoutMetrics.contentInsets))); } if (layoutMetrics.displayType == DisplayType::None) { list.push_back(std::make_shared<DebugStringConvertibleItem>("hidden")); } if (layoutMetrics.layoutDirection == LayoutDirection::RightToLeft) { list.push_back(std::make_shared<DebugStringConvertibleItem>("rtl")); } return list; }
void YogaLayoutableShadowNode::layout(LayoutContext layoutContext) { if (!getIsLayoutClean()) { ensureUnsealed(); /* * In Yoga, every single Yoga Node has to have a (non-null) pointer to * Yoga Config (this config can be shared between many nodes), * so every node can be individually configured. This does *not* mean * however that Yoga consults with every single Yoga Node Config for every * config parameter. Especially in case of `pointScaleFactor`, * the only value in the config of the root node is taken into account * (and this is by design). */ yogaConfig_.pointScaleFactor = layoutContext.pointScaleFactor; { SystraceSection s("YogaLayoutableShadowNode::YGNodeCalculateLayout"); YGNodeCalculateLayout( &yogaNode_, YGUndefined, YGUndefined, YGDirectionInherit); } } LayoutableShadowNode::layout(layoutContext); }
void YogaLayoutableShadowNode::layout(LayoutContext layoutContext) { if (!getIsLayoutClean()) { ensureUnsealed(); YGNodeCalculateLayout(&yogaNode_, YGUndefined, YGUndefined, YGDirectionInherit); } LayoutableShadowNode::layout(layoutContext); }
void YogaLayoutableShadowNode::layout(LayoutContext layoutContext) { ensureUnsealed(); if (!getIsLayoutClean()) { YGNode *yogaNode = const_cast<YGNode *>(yogaNode_.get()); YGNodeCalculateLayout(yogaNode, YGUndefined, YGUndefined, YGDirectionInherit); } LayoutableShadowNode::layout(layoutContext); }