mirror of
https://github.com/react/react-native.git
synced 2026-09-29 16:58:04 +08:00
Spec-correct CSS Flexbox §4.5 auto-min-size opt-in on YGConfig (#57015)
Summary: X-link: https://github.com/facebook/yoga/pull/1966 Pull Request resolved: https://github.com/facebook/react-native/pull/57015 Implements CSS Flexbox §4.5 automatic minimum sizing in Yoga. When opted in on a `YGConfig`, every flex item whose main-axis `min-{width,height}` is undefined receives a content-derived floor — `min(min-content, specified-size, max-size)` plus any aspect-ratio-transferred lower bound — so it cannot shrink below the size CSS browsers would honor. How to opt in: clear the new `YGErrataMinSizeUndefinedInsteadOfAuto` errata bit on the config. Default configs carry the bit (preserves today's behaviour); existing trees see no change. The bit is added to `YGErrataClassic` so consumers using that constant continue to get the same default. Three ways for a node to declare its min-content size along an axis, in this precedence order: 1. **Static per-axis value** via `YGNodeSetMinContentWidth/Height(node, value)`. Pass `YGUndefined` to clear. When set, the §4.5 probe short-circuits at this node — skipping both the dynamic callback and any container recursion. Use for known constants (e.g., images returning 0 per CSS-Images; scroll containers returning 0 on their scroll axis). 2. **Dynamic callback** via `YGNodeSetMinContentMeasureFunc(node, fn)`. Mirrors `YGMeasureFunc`'s shape. The algorithm invokes it for measure-func leaves when no static value is set. 3. **Default fallback**: the existing `YGMeasureFunc` invoked with `AtMost 0`, which text measurers naturally answer with their longest-word width. For container nodes without a static value, the algorithm walks children directly — sum on the container's own main axis, max on the cross axis — mirroring RenderCore FlexLayout's `computeMinContentSize`. This replaces the previous `calculateLayoutInternal(performLayout=false)` re-entry and skips cross-axis sizing, padding/border resolution, alignment, and baseline machinery that the probe doesn't need. Per-item opt-outs follow the CSS spec: explicit `min-{width,height}` (including 0), `display: none`, and `overflow != visible`. Cost when off (default): a single errata-bit check per flex line plus one `FloatOptional` short-circuit per `boundAxisWithAutoMin` call. Sub-microsecond. Cost when on: one min-content probe per opted-in flex item per layout pass. Static values short-circuit in ~30 ns; measure-func leaves cost one extra `measure()` call; container subtrees do one recursive sum/max walk over in-flow descendants. Reference: https://www.w3.org/TR/css-flexbox-1/#min-size-auto. Modeled after `xplat/flexlayout/`'s `MinSizeUndefinedInsteadOfAuto` errata path. Changelog: [General][Added] - Add CSS Flexbox §4.5 automatic minimum sizing. Opt in by clearing the new `YGErrataMinSizeUndefinedInsteadOfAuto` errata bit on `YGConfig`. Adds `YGNodeSetMinContentWidth/Height` for static contributions and `YGMinContentMeasureFunc` for dynamic ones.' GH pull request https://github.com/facebook/react-native/pull/57015 https://github.com/facebook/yoga/pull/1966 Reviewed By: fbcbl Differential Revision: D105720159 fbshipit-source-id: 57a14408b10535fd84623b4d99ae9b5fba7b35ba
This commit is contained in:
committed by
meta-codesync[bot]
parent
ee6958a9f4
commit
7f396d1116
@@ -12960,6 +12960,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -12967,6 +12968,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -12977,6 +12979,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -13030,6 +13034,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -13279,6 +13286,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -13538,6 +13546,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -12598,6 +12598,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -12605,6 +12606,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -12615,6 +12617,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -12668,6 +12672,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -12917,6 +12924,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -13176,6 +13184,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -12813,6 +12813,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -12820,6 +12821,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -12830,6 +12832,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -12883,6 +12887,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -13132,6 +13139,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -13391,6 +13399,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -15176,6 +15176,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -15183,6 +15184,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -15193,6 +15195,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -15246,6 +15250,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -15495,6 +15502,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -15754,6 +15762,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -14497,6 +14497,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -14504,6 +14505,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -14514,6 +14516,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -14567,6 +14571,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -14816,6 +14823,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -15075,6 +15083,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -15039,6 +15039,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -15046,6 +15047,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -15056,6 +15058,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -15109,6 +15113,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -15358,6 +15365,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -15617,6 +15625,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -9925,6 +9925,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -9932,6 +9933,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -9942,6 +9944,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -9995,6 +9999,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -10244,6 +10251,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -10503,6 +10511,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -9765,6 +9765,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -9772,6 +9773,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -9782,6 +9784,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -9835,6 +9839,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -10084,6 +10091,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -10343,6 +10351,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
@@ -9916,6 +9916,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public Node(facebook::yoga::Node&& node) noexcept;
|
||||
public YGDirtiedFunc getDirtiedFunc() const;
|
||||
public YGSize measure(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public YGSize measureMinContent(float availableWidth, facebook::yoga::MeasureMode widthMode, float availableHeight, facebook::yoga::MeasureMode heightMode);
|
||||
public bool alwaysFormsContainingBlock() const;
|
||||
public bool getHasNewLayout() const;
|
||||
public bool hasBaselineFunc() const noexcept;
|
||||
@@ -9923,6 +9924,7 @@ class facebook::yoga::Node : public YGNode {
|
||||
public bool hasDefiniteLength(facebook::yoga::Dimension dimension, float ownerSize);
|
||||
public bool hasErrata(facebook::yoga::Errata errata) const;
|
||||
public bool hasMeasureFunc() const noexcept;
|
||||
public bool hasMinContentMeasureFunc() const noexcept;
|
||||
public bool isDirty() const;
|
||||
public bool isLayoutDimensionDefined(facebook::yoga::FlexDirection axis);
|
||||
public bool isNodeFlexible();
|
||||
@@ -9933,6 +9935,8 @@ class facebook::yoga::Node : public YGNode {
|
||||
public const facebook::yoga::Style& style() const;
|
||||
public const std::vector<facebook::yoga::Node*>& getChildren() const;
|
||||
public facebook::yoga::Direction resolveDirection(facebook::yoga::Direction ownerDirection);
|
||||
public facebook::yoga::FloatOptional getMinContentHeight() const noexcept;
|
||||
public facebook::yoga::FloatOptional getMinContentWidth() const noexcept;
|
||||
public facebook::yoga::FloatOptional getResolvedDimension(facebook::yoga::Direction direction, facebook::yoga::Dimension dimension, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::FloatOptional resolveFlexBasis(facebook::yoga::Direction direction, facebook::yoga::FlexDirection flexDirection, float referenceLength, float ownerWidth) const;
|
||||
public facebook::yoga::LayoutResults& getLayout();
|
||||
@@ -9986,6 +9990,9 @@ class facebook::yoga::Node : public YGNode {
|
||||
public void setLayoutPosition(float position, facebook::yoga::PhysicalEdge edge);
|
||||
public void setLineIndex(size_t lineIndex);
|
||||
public void setMeasureFunc(YGMeasureFunc measureFunc);
|
||||
public void setMinContentHeight(facebook::yoga::FloatOptional minContentHeight) noexcept;
|
||||
public void setMinContentMeasureFunc(YGMinContentMeasureFunc minContentMeasureFunc);
|
||||
public void setMinContentWidth(facebook::yoga::FloatOptional minContentWidth) noexcept;
|
||||
public void setNodeType(facebook::yoga::NodeType nodeType);
|
||||
public void setOwner(facebook::yoga::Node* owner);
|
||||
public void setPosition(facebook::yoga::Direction direction, float ownerWidth, float ownerHeight);
|
||||
@@ -10235,6 +10242,7 @@ enum facebook::yoga::Errata : uint32_t {
|
||||
AbsolutePositionWithoutInsetsExcludesPadding,
|
||||
All,
|
||||
Classic,
|
||||
MinSizeUndefinedInsteadOfAuto,
|
||||
None,
|
||||
StretchFlexBasis,
|
||||
}
|
||||
@@ -10494,6 +10502,7 @@ struct facebook::yoga::LayoutResults {
|
||||
public facebook::yoga::CachedMeasurement cachedLayout;
|
||||
public facebook::yoga::Direction direction() const;
|
||||
public facebook::yoga::Direction lastOwnerDirection;
|
||||
public facebook::yoga::FloatOptional computedAutoMinMainSize;
|
||||
public facebook::yoga::FloatOptional computedFlexBasis;
|
||||
public float border(facebook::yoga::PhysicalEdge physicalEdge) const;
|
||||
public float dimension(facebook::yoga::Dimension axis) const;
|
||||
|
||||
Reference in New Issue
Block a user