diff --git a/Yoga.podspec b/Yoga.podspec index 4ebb5adf..bd050ade 100644 --- a/Yoga.podspec +++ b/Yoga.podspec @@ -35,14 +35,7 @@ Pod::Spec.new do |spec| '-std=c++17', '-fPIC' ] - - spec.swift_version = '5.1' spec.source_files = 'yoga/**/*.{h,cpp}' - spec.header_mappings_dir = 'yoga' - - public_header_files = 'yoga/{Yoga,YGEnums,YGMacros,YGValue}.h' - spec.public_header_files = public_header_files - - all_header_files = 'yoga/**/*.h' - spec.private_header_files = Dir.glob(all_header_files) - Dir.glob(public_header_files) + spec.public_header_files = 'yoga/{Yoga,YGEnums,YGMacros,YGValue}.h' + spec.swift_version = '5.1' end diff --git a/tests/CompactValueTest.cpp b/tests/CompactValueTest.cpp index 5b78a060..5a875f8e 100644 --- a/tests/CompactValueTest.cpp +++ b/tests/CompactValueTest.cpp @@ -7,11 +7,11 @@ #define YOGA_COMPACT_VALUE_TEST -#include +#include #include #include -using facebook::yoga::CompactValue; +using facebook::yoga::detail::CompactValue; const auto tooSmall = nextafterf(CompactValue::LOWER_BOUND, -INFINITY); const auto tooLargePoints = diff --git a/tests/YGStyleAccessorsTest.cpp b/tests/YGStyleAccessorsTest.cpp index 49671bcc..2e96af92 100644 --- a/tests/YGStyleAccessorsTest.cpp +++ b/tests/YGStyleAccessorsTest.cpp @@ -8,8 +8,9 @@ #include #include #include -#include -#include +#include +#include +#include #define ACCESSOR_TESTS_1(NAME, X) \ style.NAME() = X; \ @@ -30,14 +31,14 @@ #define ACCESSOR_TESTS_N(a, b, c, d, e, COUNT, ...) ACCESSOR_TESTS_##COUNT #define ACCESSOR_TESTS(...) ACCESSOR_TESTS_N(__VA_ARGS__, 5, 4, 3, 2, 1) -#define INDEX_ACCESSOR_TESTS_1(NAME, IDX, X) \ - { \ - auto style = Style{}; \ - style.NAME()[IDX] = X; \ - ASSERT_EQ(style.NAME()[IDX], X); \ - auto asArray = decltype(std::declval().NAME()){X}; \ - style.NAME() = asArray; \ - ASSERT_EQ(static_cast(style.NAME()), asArray); \ +#define INDEX_ACCESSOR_TESTS_1(NAME, IDX, X) \ + { \ + auto style = YGStyle{}; \ + style.NAME()[IDX] = X; \ + ASSERT_EQ(style.NAME()[IDX], X); \ + auto asArray = decltype(std::declval().NAME()){X}; \ + style.NAME() = asArray; \ + ASSERT_EQ(static_cast(style.NAME()), asArray); \ } #define INDEX_ACCESSOR_TESTS_2(NAME, IDX, X, Y) \ @@ -63,20 +64,22 @@ // test macro for up to 5 values. If more are needed, extend the macros above. #define ACCESSOR_TEST(NAME, DEFAULT_VAL, ...) \ - TEST(Style, style_##NAME##_access) { \ - auto style = Style{}; \ + TEST(YGStyle, style_##NAME##_access) { \ + auto style = YGStyle{}; \ ASSERT_EQ(style.NAME(), DEFAULT_VAL); \ ACCESSOR_TESTS(__VA_ARGS__)(NAME, __VA_ARGS__) \ } #define INDEX_ACCESSOR_TEST(NAME, DEFAULT_VAL, IDX, ...) \ - TEST(Style, style_##NAME##_access) { \ - ASSERT_EQ(Style{}.NAME()[IDX], DEFAULT_VAL); \ + TEST(YGStyle, style_##NAME##_access) { \ + ASSERT_EQ(YGStyle{}.NAME()[IDX], DEFAULT_VAL); \ INDEX_ACCESSOR_TESTS(__VA_ARGS__)(NAME, IDX, __VA_ARGS__) \ } namespace facebook::yoga { +using CompactValue = detail::CompactValue; + // TODO: MSVC doesn't like the macros #ifndef _MSC_VER diff --git a/yoga/style/CompactValue.h b/yoga/CompactValue.h similarity index 98% rename from yoga/style/CompactValue.h rename to yoga/CompactValue.h index 498b984a..9d494500 100644 --- a/yoga/style/CompactValue.h +++ b/yoga/CompactValue.h @@ -38,7 +38,7 @@ static_assert( #define VISIBLE_FOR_TESTING private: #endif -namespace facebook::yoga { +namespace facebook::yoga::detail { // This class stores YGValue in 32 bits. // - The value does not matter for Undefined and Auto. NaNs are used for their @@ -207,4 +207,4 @@ constexpr bool operator!=(CompactValue a, CompactValue b) noexcept { return !(a == b); } -} // namespace facebook::yoga +} // namespace facebook::yoga::detail diff --git a/yoga/Utils.h b/yoga/Utils.h index 78b44de6..376c4fb5 100644 --- a/yoga/Utils.h +++ b/yoga/Utils.h @@ -8,8 +8,8 @@ #pragma once #include "YGNode.h" -#include -#include +#include "Yoga-internal.h" +#include "CompactValue.h" // This struct is an helper model to hold the data for step 4 of flexbox algo, // which is collecting the flex items in a line. @@ -56,8 +56,8 @@ struct YGCollectFlexItemsRowValues { bool YGValueEqual(const YGValue& a, const YGValue& b); inline bool YGValueEqual( - facebook::yoga::CompactValue a, - facebook::yoga::CompactValue b) { + facebook::yoga::detail::CompactValue a, + facebook::yoga::detail::CompactValue b) { return YGValueEqual((YGValue) a, (YGValue) b); } @@ -115,7 +115,7 @@ inline YGFloatOptional YGResolveValue( } inline YGFloatOptional YGResolveValue( - facebook::yoga::CompactValue value, + facebook::yoga::detail::CompactValue value, float ownerSize) { return YGResolveValue((YGValue) value, ownerSize); } @@ -140,7 +140,7 @@ inline YGFlexDirection YGResolveFlexDirection( } inline YGFloatOptional YGResolveValueMargin( - facebook::yoga::CompactValue value, + facebook::yoga::detail::CompactValue value, const float ownerSize) { return value.isAuto() ? YGFloatOptional{0} : YGResolveValue(value, ownerSize); } diff --git a/yoga/YGConfig.h b/yoga/YGConfig.h index fa530fab..391e2500 100644 --- a/yoga/YGConfig.h +++ b/yoga/YGConfig.h @@ -9,8 +9,8 @@ #include -#include -#include +#include "BitUtils.h" +#include "Yoga-internal.h" namespace facebook::yoga { diff --git a/yoga/YGFloatOptional.h b/yoga/YGFloatOptional.h index c4c18311..4aa9e76e 100644 --- a/yoga/YGFloatOptional.h +++ b/yoga/YGFloatOptional.h @@ -9,7 +9,7 @@ #include #include -#include +#include "Yoga-internal.h" struct YGFloatOptional { private: diff --git a/yoga/YGLayout.h b/yoga/YGLayout.h index 78a1bcf1..166eabb6 100644 --- a/yoga/YGLayout.h +++ b/yoga/YGLayout.h @@ -7,9 +7,9 @@ #pragma once -#include -#include -#include +#include "BitUtils.h" +#include "YGFloatOptional.h" +#include "Yoga-internal.h" struct YGLayout { std::array position = {}; diff --git a/yoga/YGNode.cpp b/yoga/YGNode.cpp index db537576..cd323b54 100644 --- a/yoga/YGNode.cpp +++ b/yoga/YGNode.cpp @@ -11,8 +11,7 @@ #include "Utils.h" using namespace facebook; -using namespace facebook::yoga; -using facebook::yoga::CompactValue; +using facebook::yoga::detail::CompactValue; YGNode::YGNode(const YGConfigRef config) : config_{config} { YGAssert( @@ -54,7 +53,7 @@ void YGNode::print(void* printContext) { } CompactValue YGNode::computeEdgeValueForRow( - const Style::Edges& edges, + const YGStyle::Edges& edges, YGEdge rowEdge, YGEdge edge, CompactValue defaultValue) { @@ -72,7 +71,7 @@ CompactValue YGNode::computeEdgeValueForRow( } CompactValue YGNode::computeEdgeValueForColumn( - const Style::Edges& edges, + const YGStyle::Edges& edges, YGEdge edge, CompactValue defaultValue) { if (!edges[edge].isUndefined()) { @@ -87,7 +86,7 @@ CompactValue YGNode::computeEdgeValueForColumn( } CompactValue YGNode::computeRowGap( - const Style::Gutters& gutters, + const YGStyle::Gutters& gutters, CompactValue defaultValue) { if (!gutters[YGGutterRow].isUndefined()) { return gutters[YGGutterRow]; @@ -99,7 +98,7 @@ CompactValue YGNode::computeRowGap( } CompactValue YGNode::computeColumnGap( - const Style::Gutters& gutters, + const YGStyle::Gutters& gutters, CompactValue defaultValue) { if (!gutters[YGGutterColumn].isUndefined()) { return gutters[YGGutterColumn]; @@ -432,7 +431,7 @@ YGValue YGNode::resolveFlexBasisPtr() const { void YGNode::resolveDimension() { using namespace yoga; - const Style& style = getStyle(); + const YGStyle& style = getStyle(); for (auto dim : {YGDimensionWidth, YGDimensionHeight}) { if (!style.maxDimensions()[dim].isUndefined() && YGValueEqual(style.maxDimensions()[dim], style.minDimensions()[dim])) { diff --git a/yoga/YGNode.h b/yoga/YGNode.h index b46ce4aa..e3c202f2 100644 --- a/yoga/YGNode.h +++ b/yoga/YGNode.h @@ -9,12 +9,11 @@ #include #include +#include "CompactValue.h" #include "YGConfig.h" #include "YGLayout.h" -#include - -#include -#include +#include "YGStyle.h" +#include "Yoga-internal.h" YGConfigRef YGConfigGetDefault(); @@ -53,7 +52,7 @@ private: PrintWithContextFn withContext; } print_ = {nullptr}; YGDirtiedFunc dirtied_ = nullptr; - facebook::yoga::Style style_ = {}; + YGStyle style_ = {}; YGLayout layout_ = {}; uint32_t lineIndex_ = 0; YGNodeRef owner_ = nullptr; @@ -81,7 +80,7 @@ private: // DO NOT CHANGE THE VISIBILITY OF THIS METHOD! YGNode& operator=(YGNode&&) = default; - using CompactValue = facebook::yoga::CompactValue; + using CompactValue = facebook::yoga::detail::CompactValue; public: YGNode() : YGNode{YGConfigGetDefault()} { flags_.hasNewLayout = true; } @@ -124,9 +123,9 @@ public: YGDirtiedFunc getDirtied() const { return dirtied_; } // For Performance reasons passing as reference. - facebook::yoga::Style& getStyle() { return style_; } + YGStyle& getStyle() { return style_; } - const facebook::yoga::Style& getStyle() const { return style_; } + const YGStyle& getStyle() const { return style_; } // For Performance reasons passing as reference. YGLayout& getLayout() { return layout_; } @@ -179,22 +178,22 @@ public: } static CompactValue computeEdgeValueForColumn( - const facebook::yoga::Style::Edges& edges, + const YGStyle::Edges& edges, YGEdge edge, CompactValue defaultValue); static CompactValue computeEdgeValueForRow( - const facebook::yoga::Style::Edges& edges, + const YGStyle::Edges& edges, YGEdge rowEdge, YGEdge edge, CompactValue defaultValue); static CompactValue computeRowGap( - const facebook::yoga::Style::Gutters& gutters, + const YGStyle::Gutters& gutters, CompactValue defaultValue); static CompactValue computeColumnGap( - const facebook::yoga::Style::Gutters& gutters, + const YGStyle::Gutters& gutters, CompactValue defaultValue); // Methods related to positions, margin, padding and border @@ -274,7 +273,7 @@ public: void setDirtiedFunc(YGDirtiedFunc dirtiedFunc) { dirtied_ = dirtiedFunc; } - void setStyle(const facebook::yoga::Style& style) { style_ = style; } + void setStyle(const YGStyle& style) { style_ = style; } void setLayout(const YGLayout& layout) { layout_ = layout; } diff --git a/yoga/YGNodePrint.cpp b/yoga/YGNodePrint.cpp index c1205abb..7aa50f07 100644 --- a/yoga/YGNodePrint.cpp +++ b/yoga/YGNodePrint.cpp @@ -13,7 +13,7 @@ #include "YGNodePrint.h" #include "YGNode.h" -#include +#include "Yoga-internal.h" #include "Utils.h" namespace facebook::yoga { @@ -25,7 +25,7 @@ static void indent(string& base, uint32_t level) { } } -static bool areFourValuesEqual(const Style::Edges& four) { +static bool areFourValuesEqual(const YGStyle::Edges& four) { return YGValueEqual(four[0], four[1]) && YGValueEqual(four[0], four[2]) && YGValueEqual(four[0], four[3]); } @@ -90,10 +90,10 @@ static void appendNumberIfNotZero( static void appendEdges( string& base, const string& key, - const Style::Edges& edges) { + const YGStyle::Edges& edges) { if (areFourValuesEqual(edges)) { auto edgeValue = YGNode::computeEdgeValueForColumn( - edges, YGEdgeLeft, CompactValue::ofZero()); + edges, YGEdgeLeft, detail::CompactValue::ofZero()); appendNumberIfNotZero(base, key, edgeValue); } else { for (int edge = YGEdgeLeft; edge != YGEdgeAll; ++edge) { @@ -106,14 +106,14 @@ static void appendEdges( static void appendEdgeIfNotUndefined( string& base, const string& str, - const Style::Edges& edges, + const YGStyle::Edges& edges, const YGEdge edge) { // TODO: this doesn't take RTL / YGEdgeStart / YGEdgeEnd into account auto value = (edge == YGEdgeLeft || edge == YGEdgeRight) ? YGNode::computeEdgeValueForRow( - edges, edge, edge, CompactValue::ofUndefined()) + edges, edge, edge, detail::CompactValue::ofUndefined()) : YGNode::computeEdgeValueForColumn( - edges, edge, CompactValue::ofUndefined()); + edges, edge, detail::CompactValue::ofUndefined()); appendNumberIfNotUndefined(base, str, value); } @@ -188,15 +188,17 @@ void YGNodeToString( appendEdges(str, "padding", style.padding()); appendEdges(str, "border", style.border()); - if (YGNode::computeColumnGap(style.gap(), CompactValue::ofUndefined()) != + if (YGNode::computeColumnGap( + style.gap(), detail::CompactValue::ofUndefined()) != YGNode::computeColumnGap( - YGNode().getStyle().gap(), CompactValue::ofUndefined())) { + YGNode().getStyle().gap(), detail::CompactValue::ofUndefined())) { appendNumberIfNotUndefined( str, "column-gap", style.gap()[YGGutterColumn]); } - if (YGNode::computeRowGap(style.gap(), CompactValue::ofUndefined()) != + if (YGNode::computeRowGap( + style.gap(), detail::CompactValue::ofUndefined()) != YGNode::computeRowGap( - YGNode().getStyle().gap(), CompactValue::ofUndefined())) { + YGNode().getStyle().gap(), detail::CompactValue::ofUndefined())) { appendNumberIfNotUndefined(str, "row-gap", style.gap()[YGGutterRow]); } diff --git a/yoga/style/Style.cpp b/yoga/YGStyle.cpp similarity index 93% rename from yoga/style/Style.cpp rename to yoga/YGStyle.cpp index 806f2428..37153f2e 100644 --- a/yoga/style/Style.cpp +++ b/yoga/YGStyle.cpp @@ -5,13 +5,11 @@ * LICENSE file in the root directory of this source tree. */ -#include -#include - -namespace facebook::yoga { +#include "YGStyle.h" +#include "Utils.h" // Yoga specific properties, not compatible with flexbox specification -bool operator==(const Style& lhs, const Style& rhs) { +bool operator==(const YGStyle& lhs, const YGStyle& rhs) { bool areNonFloatValuesEqual = lhs.direction() == rhs.direction() && lhs.flexDirection() == rhs.flexDirection() && lhs.justifyContent() == rhs.justifyContent() && @@ -56,5 +54,3 @@ bool operator==(const Style& lhs, const Style& rhs) { return areNonFloatValuesEqual; } - -} // namespace facebook::yoga diff --git a/yoga/style/Style.h b/yoga/YGStyle.h similarity index 80% rename from yoga/style/Style.h rename to yoga/YGStyle.h index c323346e..4f182d06 100644 --- a/yoga/style/Style.h +++ b/yoga/YGStyle.h @@ -13,17 +13,17 @@ #include #include -#include -#include -#include -#include +#include "CompactValue.h" +#include "YGFloatOptional.h" +#include "Yoga-internal.h" +#include "BitUtils.h" -namespace facebook::yoga { - -class YOGA_EXPORT Style { +class YOGA_EXPORT YGStyle { template - using Values = detail::Values()>; + using Values = + facebook::yoga::detail::Values()>; + using CompactValue = facebook::yoga::detail::CompactValue; public: using Dimensions = Values; @@ -32,7 +32,7 @@ public: template struct BitfieldRef { - Style& style; + YGStyle& style; size_t offset; operator T() const { return facebook::yoga::detail::getEnumData(style.flags, offset); @@ -43,9 +43,9 @@ public: } }; - template + template struct Ref { - Style& style; + YGStyle& style; operator T() const { return style.*Prop; } Ref& operator=(T value) { style.*Prop = value; @@ -53,10 +53,10 @@ public: } }; - template Style::*Prop> + template YGStyle::*Prop> struct IdxRef { struct Ref { - Style& style; + YGStyle& style; Idx idx; operator CompactValue() const { return (style.*Prop)[idx]; } operator YGValue() const { return (style.*Prop)[idx]; } @@ -66,7 +66,7 @@ public: } }; - Style& style; + YGStyle& style; IdxRef& operator=(const Values& values) { style.*Prop = values; return *this; @@ -76,11 +76,11 @@ public: CompactValue operator[](Idx idx) const { return (style.*Prop)[idx]; } }; - Style() { + YGStyle() { alignContent() = YGAlignFlexStart; alignItems() = YGAlignStretch; } - ~Style() = default; + ~YGStyle() = default; private: static constexpr size_t directionOffset = 0; @@ -188,52 +188,51 @@ public: BitfieldRef display() { return {*this, displayOffset}; } YGFloatOptional flex() const { return flex_; } - Ref flex() { return {*this}; } + Ref flex() { return {*this}; } YGFloatOptional flexGrow() const { return flexGrow_; } - Ref flexGrow() { return {*this}; } + Ref flexGrow() { return {*this}; } YGFloatOptional flexShrink() const { return flexShrink_; } - Ref flexShrink() { return {*this}; } + Ref flexShrink() { return {*this}; } CompactValue flexBasis() const { return flexBasis_; } - Ref flexBasis() { return {*this}; } + Ref flexBasis() { return {*this}; } const Edges& margin() const { return margin_; } - IdxRef margin() { return {*this}; } + IdxRef margin() { return {*this}; } const Edges& position() const { return position_; } - IdxRef position() { return {*this}; } + IdxRef position() { return {*this}; } const Edges& padding() const { return padding_; } - IdxRef padding() { return {*this}; } + IdxRef padding() { return {*this}; } const Edges& border() const { return border_; } - IdxRef border() { return {*this}; } + IdxRef border() { return {*this}; } const Gutters& gap() const { return gap_; } - IdxRef gap() { return {*this}; } + IdxRef gap() { return {*this}; } const Dimensions& dimensions() const { return dimensions_; } - IdxRef dimensions() { return {*this}; } + IdxRef dimensions() { return {*this}; } const Dimensions& minDimensions() const { return minDimensions_; } - IdxRef minDimensions() { + IdxRef minDimensions() { return {*this}; } const Dimensions& maxDimensions() const { return maxDimensions_; } - IdxRef maxDimensions() { + IdxRef maxDimensions() { return {*this}; } // Yoga specific properties, not compatible with flexbox specification YGFloatOptional aspectRatio() const { return aspectRatio_; } - Ref aspectRatio() { return {*this}; } + Ref aspectRatio() { return {*this}; } }; -YOGA_EXPORT bool operator==(const Style& lhs, const Style& rhs); -YOGA_EXPORT inline bool operator!=(const Style& lhs, const Style& rhs) { +YOGA_EXPORT bool operator==(const YGStyle& lhs, const YGStyle& rhs); +YOGA_EXPORT inline bool operator!=(const YGStyle& lhs, const YGStyle& rhs) { return !(lhs == rhs); } -} // namespace facebook::yoga diff --git a/yoga/Yoga-internal.h b/yoga/Yoga-internal.h index d4e6df63..c16c2ad5 100644 --- a/yoga/Yoga-internal.h +++ b/yoga/Yoga-internal.h @@ -14,7 +14,7 @@ #include -#include +#include "CompactValue.h" using YGVector = std::vector; diff --git a/yoga/Yoga.cpp b/yoga/Yoga.cpp index e8756ddf..ab0aa825 100644 --- a/yoga/Yoga.cpp +++ b/yoga/Yoga.cpp @@ -17,7 +17,7 @@ #include "Utils.h" #include "YGNode.h" #include "YGNodePrint.h" -#include +#include "Yoga-internal.h" #include "event/event.h" using namespace facebook::yoga; @@ -480,25 +480,26 @@ void updateStyle( } template -void updateStyle(YGNode* node, Ref (Style::*prop)(), T value) { +void updateStyle(YGNode* node, Ref (YGStyle::*prop)(), T value) { updateStyle( node, value, - [prop](Style& s, T x) { return (s.*prop)() != x; }, - [prop](Style& s, T x) { (s.*prop)() = x; }); + [prop](YGStyle& s, T x) { return (s.*prop)() != x; }, + [prop](YGStyle& s, T x) { (s.*prop)() = x; }); } template void updateIndexedStyleProp( YGNode* node, - Ref (Style::*prop)(), + Ref (YGStyle::*prop)(), Idx idx, - CompactValue value) { + detail::CompactValue value) { + using detail::CompactValue; updateStyle( node, value, - [idx, prop](Style& s, CompactValue x) { return (s.*prop)()[idx] != x; }, - [idx, prop](Style& s, CompactValue x) { (s.*prop)()[idx] = x; }); + [idx, prop](YGStyle& s, CompactValue x) { return (s.*prop)()[idx] != x; }, + [idx, prop](YGStyle& s, CompactValue x) { (s.*prop)()[idx] = x; }); } } // namespace @@ -508,12 +509,12 @@ void updateIndexedStyleProp( // overload like clang and GCC. For the purposes of updateStyle(), we can help // MSVC by specifying that return type explicitly. In combination with // decltype, MSVC will prefer the non-const version. -#define MSVC_HINT(PROP) decltype(Style{}.PROP()) +#define MSVC_HINT(PROP) decltype(YGStyle{}.PROP()) YOGA_EXPORT void YGNodeStyleSetDirection( const YGNodeRef node, const YGDirection value) { - updateStyle(node, &Style::direction, value); + updateStyle(node, &YGStyle::direction, value); } YOGA_EXPORT YGDirection YGNodeStyleGetDirection(const YGNodeConstRef node) { return node->getStyle().direction(); @@ -523,7 +524,7 @@ YOGA_EXPORT void YGNodeStyleSetFlexDirection( const YGNodeRef node, const YGFlexDirection flexDirection) { updateStyle( - node, &Style::flexDirection, flexDirection); + node, &YGStyle::flexDirection, flexDirection); } YOGA_EXPORT YGFlexDirection YGNodeStyleGetFlexDirection(const YGNodeConstRef node) { @@ -534,7 +535,7 @@ YOGA_EXPORT void YGNodeStyleSetJustifyContent( const YGNodeRef node, const YGJustify justifyContent) { updateStyle( - node, &Style::justifyContent, justifyContent); + node, &YGStyle::justifyContent, justifyContent); } YOGA_EXPORT YGJustify YGNodeStyleGetJustifyContent(const YGNodeConstRef node) { return node->getStyle().justifyContent(); @@ -544,7 +545,7 @@ YOGA_EXPORT void YGNodeStyleSetAlignContent( const YGNodeRef node, const YGAlign alignContent) { updateStyle( - node, &Style::alignContent, alignContent); + node, &YGStyle::alignContent, alignContent); } YOGA_EXPORT YGAlign YGNodeStyleGetAlignContent(const YGNodeConstRef node) { return node->getStyle().alignContent(); @@ -553,7 +554,7 @@ YOGA_EXPORT YGAlign YGNodeStyleGetAlignContent(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetAlignItems( const YGNodeRef node, const YGAlign alignItems) { - updateStyle(node, &Style::alignItems, alignItems); + updateStyle(node, &YGStyle::alignItems, alignItems); } YOGA_EXPORT YGAlign YGNodeStyleGetAlignItems(const YGNodeConstRef node) { return node->getStyle().alignItems(); @@ -562,7 +563,7 @@ YOGA_EXPORT YGAlign YGNodeStyleGetAlignItems(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetAlignSelf( const YGNodeRef node, const YGAlign alignSelf) { - updateStyle(node, &Style::alignSelf, alignSelf); + updateStyle(node, &YGStyle::alignSelf, alignSelf); } YOGA_EXPORT YGAlign YGNodeStyleGetAlignSelf(const YGNodeConstRef node) { return node->getStyle().alignSelf(); @@ -572,7 +573,7 @@ YOGA_EXPORT void YGNodeStyleSetPositionType( const YGNodeRef node, const YGPositionType positionType) { updateStyle( - node, &Style::positionType, positionType); + node, &YGStyle::positionType, positionType); } YOGA_EXPORT YGPositionType YGNodeStyleGetPositionType(const YGNodeConstRef node) { @@ -582,7 +583,7 @@ YGNodeStyleGetPositionType(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetFlexWrap( const YGNodeRef node, const YGWrap flexWrap) { - updateStyle(node, &Style::flexWrap, flexWrap); + updateStyle(node, &YGStyle::flexWrap, flexWrap); } YOGA_EXPORT YGWrap YGNodeStyleGetFlexWrap(const YGNodeConstRef node) { return node->getStyle().flexWrap(); @@ -591,7 +592,7 @@ YOGA_EXPORT YGWrap YGNodeStyleGetFlexWrap(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetOverflow( const YGNodeRef node, const YGOverflow overflow) { - updateStyle(node, &Style::overflow, overflow); + updateStyle(node, &YGStyle::overflow, overflow); } YOGA_EXPORT YGOverflow YGNodeStyleGetOverflow(const YGNodeConstRef node) { return node->getStyle().overflow(); @@ -600,7 +601,7 @@ YOGA_EXPORT YGOverflow YGNodeStyleGetOverflow(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetDisplay( const YGNodeRef node, const YGDisplay display) { - updateStyle(node, &Style::display, display); + updateStyle(node, &YGStyle::display, display); } YOGA_EXPORT YGDisplay YGNodeStyleGetDisplay(const YGNodeConstRef node) { return node->getStyle().display(); @@ -608,7 +609,7 @@ YOGA_EXPORT YGDisplay YGNodeStyleGetDisplay(const YGNodeConstRef node) { // TODO(T26792433): Change the API to accept YGFloatOptional. YOGA_EXPORT void YGNodeStyleSetFlex(const YGNodeRef node, const float flex) { - updateStyle(node, &Style::flex, YGFloatOptional{flex}); + updateStyle(node, &YGStyle::flex, YGFloatOptional{flex}); } // TODO(T26792433): Change the API to accept YGFloatOptional. @@ -623,7 +624,7 @@ YOGA_EXPORT void YGNodeStyleSetFlexGrow( const YGNodeRef node, const float flexGrow) { updateStyle( - node, &Style::flexGrow, YGFloatOptional{flexGrow}); + node, &YGStyle::flexGrow, YGFloatOptional{flexGrow}); } // TODO(T26792433): Change the API to accept YGFloatOptional. @@ -631,7 +632,7 @@ YOGA_EXPORT void YGNodeStyleSetFlexShrink( const YGNodeRef node, const float flexShrink) { updateStyle( - node, &Style::flexShrink, YGFloatOptional{flexShrink}); + node, &YGStyle::flexShrink, YGFloatOptional{flexShrink}); } YOGA_EXPORT YGValue YGNodeStyleGetFlexBasis(const YGNodeConstRef node) { @@ -646,37 +647,37 @@ YOGA_EXPORT YGValue YGNodeStyleGetFlexBasis(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetFlexBasis( const YGNodeRef node, const float flexBasis) { - auto value = CompactValue::ofMaybe(flexBasis); - updateStyle(node, &Style::flexBasis, value); + auto value = detail::CompactValue::ofMaybe(flexBasis); + updateStyle(node, &YGStyle::flexBasis, value); } YOGA_EXPORT void YGNodeStyleSetFlexBasisPercent( const YGNodeRef node, const float flexBasisPercent) { - auto value = CompactValue::ofMaybe(flexBasisPercent); - updateStyle(node, &Style::flexBasis, value); + auto value = detail::CompactValue::ofMaybe(flexBasisPercent); + updateStyle(node, &YGStyle::flexBasis, value); } YOGA_EXPORT void YGNodeStyleSetFlexBasisAuto(const YGNodeRef node) { updateStyle( - node, &Style::flexBasis, CompactValue::ofAuto()); + node, &YGStyle::flexBasis, detail::CompactValue::ofAuto()); } YOGA_EXPORT void YGNodeStyleSetPosition( YGNodeRef node, YGEdge edge, float points) { - auto value = CompactValue::ofMaybe(points); + auto value = detail::CompactValue::ofMaybe(points); updateIndexedStyleProp( - node, &Style::position, edge, value); + node, &YGStyle::position, edge, value); } YOGA_EXPORT void YGNodeStyleSetPositionPercent( YGNodeRef node, YGEdge edge, float percent) { - auto value = CompactValue::ofMaybe(percent); + auto value = detail::CompactValue::ofMaybe(percent); updateIndexedStyleProp( - node, &Style::position, edge, value); + node, &YGStyle::position, edge, value); } YOGA_EXPORT YGValue YGNodeStyleGetPosition(YGNodeConstRef node, YGEdge edge) { return node->getStyle().position()[edge]; @@ -686,19 +687,21 @@ YOGA_EXPORT void YGNodeStyleSetMargin( YGNodeRef node, YGEdge edge, float points) { - auto value = CompactValue::ofMaybe(points); - updateIndexedStyleProp(node, &Style::margin, edge, value); + auto value = detail::CompactValue::ofMaybe(points); + updateIndexedStyleProp( + node, &YGStyle::margin, edge, value); } YOGA_EXPORT void YGNodeStyleSetMarginPercent( YGNodeRef node, YGEdge edge, float percent) { - auto value = CompactValue::ofMaybe(percent); - updateIndexedStyleProp(node, &Style::margin, edge, value); + auto value = detail::CompactValue::ofMaybe(percent); + updateIndexedStyleProp( + node, &YGStyle::margin, edge, value); } YOGA_EXPORT void YGNodeStyleSetMarginAuto(YGNodeRef node, YGEdge edge) { updateIndexedStyleProp( - node, &Style::margin, edge, CompactValue::ofAuto()); + node, &YGStyle::margin, edge, detail::CompactValue::ofAuto()); } YOGA_EXPORT YGValue YGNodeStyleGetMargin(YGNodeConstRef node, YGEdge edge) { return node->getStyle().margin()[edge]; @@ -708,17 +711,17 @@ YOGA_EXPORT void YGNodeStyleSetPadding( YGNodeRef node, YGEdge edge, float points) { - auto value = CompactValue::ofMaybe(points); + auto value = detail::CompactValue::ofMaybe(points); updateIndexedStyleProp( - node, &Style::padding, edge, value); + node, &YGStyle::padding, edge, value); } YOGA_EXPORT void YGNodeStyleSetPaddingPercent( YGNodeRef node, YGEdge edge, float percent) { - auto value = CompactValue::ofMaybe(percent); + auto value = detail::CompactValue::ofMaybe(percent); updateIndexedStyleProp( - node, &Style::padding, edge, value); + node, &YGStyle::padding, edge, value); } YOGA_EXPORT YGValue YGNodeStyleGetPadding(YGNodeConstRef node, YGEdge edge) { return node->getStyle().padding()[edge]; @@ -729,8 +732,9 @@ YOGA_EXPORT void YGNodeStyleSetBorder( const YGNodeRef node, const YGEdge edge, const float border) { - auto value = CompactValue::ofMaybe(border); - updateIndexedStyleProp(node, &Style::border, edge, value); + auto value = detail::CompactValue::ofMaybe(border); + updateIndexedStyleProp( + node, &YGStyle::border, edge, value); } YOGA_EXPORT float YGNodeStyleGetBorder( @@ -750,8 +754,8 @@ YOGA_EXPORT void YGNodeStyleSetGap( const YGNodeRef node, const YGGutter gutter, const float gapLength) { - auto length = CompactValue::ofMaybe(gapLength); - updateIndexedStyleProp(node, &Style::gap, gutter, length); + auto length = detail::CompactValue::ofMaybe(gapLength); + updateIndexedStyleProp(node, &YGStyle::gap, gutter, length); } YOGA_EXPORT float YGNodeStyleGetGap( @@ -780,40 +784,46 @@ YOGA_EXPORT void YGNodeStyleSetAspectRatio( const YGNodeRef node, const float aspectRatio) { updateStyle( - node, &Style::aspectRatio, YGFloatOptional{aspectRatio}); + node, &YGStyle::aspectRatio, YGFloatOptional{aspectRatio}); } YOGA_EXPORT void YGNodeStyleSetWidth(YGNodeRef node, float points) { - auto value = CompactValue::ofMaybe(points); + auto value = detail::CompactValue::ofMaybe(points); updateIndexedStyleProp( - node, &Style::dimensions, YGDimensionWidth, value); + node, &YGStyle::dimensions, YGDimensionWidth, value); } YOGA_EXPORT void YGNodeStyleSetWidthPercent(YGNodeRef node, float percent) { - auto value = CompactValue::ofMaybe(percent); + auto value = detail::CompactValue::ofMaybe(percent); updateIndexedStyleProp( - node, &Style::dimensions, YGDimensionWidth, value); + node, &YGStyle::dimensions, YGDimensionWidth, value); } YOGA_EXPORT void YGNodeStyleSetWidthAuto(YGNodeRef node) { updateIndexedStyleProp( - node, &Style::dimensions, YGDimensionWidth, CompactValue::ofAuto()); + node, + &YGStyle::dimensions, + YGDimensionWidth, + detail::CompactValue::ofAuto()); } YOGA_EXPORT YGValue YGNodeStyleGetWidth(YGNodeConstRef node) { return node->getStyle().dimensions()[YGDimensionWidth]; } YOGA_EXPORT void YGNodeStyleSetHeight(YGNodeRef node, float points) { - auto value = CompactValue::ofMaybe(points); + auto value = detail::CompactValue::ofMaybe(points); updateIndexedStyleProp( - node, &Style::dimensions, YGDimensionHeight, value); + node, &YGStyle::dimensions, YGDimensionHeight, value); } YOGA_EXPORT void YGNodeStyleSetHeightPercent(YGNodeRef node, float percent) { - auto value = CompactValue::ofMaybe(percent); + auto value = detail::CompactValue::ofMaybe(percent); updateIndexedStyleProp( - node, &Style::dimensions, YGDimensionHeight, value); + node, &YGStyle::dimensions, YGDimensionHeight, value); } YOGA_EXPORT void YGNodeStyleSetHeightAuto(YGNodeRef node) { updateIndexedStyleProp( - node, &Style::dimensions, YGDimensionHeight, CompactValue::ofAuto()); + node, + &YGStyle::dimensions, + YGDimensionHeight, + detail::CompactValue::ofAuto()); } YOGA_EXPORT YGValue YGNodeStyleGetHeight(YGNodeConstRef node) { return node->getStyle().dimensions()[YGDimensionHeight]; @@ -822,16 +832,16 @@ YOGA_EXPORT YGValue YGNodeStyleGetHeight(YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetMinWidth( const YGNodeRef node, const float minWidth) { - auto value = CompactValue::ofMaybe(minWidth); + auto value = detail::CompactValue::ofMaybe(minWidth); updateIndexedStyleProp( - node, &Style::minDimensions, YGDimensionWidth, value); + node, &YGStyle::minDimensions, YGDimensionWidth, value); } YOGA_EXPORT void YGNodeStyleSetMinWidthPercent( const YGNodeRef node, const float minWidth) { - auto value = CompactValue::ofMaybe(minWidth); + auto value = detail::CompactValue::ofMaybe(minWidth); updateIndexedStyleProp( - node, &Style::minDimensions, YGDimensionWidth, value); + node, &YGStyle::minDimensions, YGDimensionWidth, value); } YOGA_EXPORT YGValue YGNodeStyleGetMinWidth(const YGNodeConstRef node) { return node->getStyle().minDimensions()[YGDimensionWidth]; @@ -840,16 +850,16 @@ YOGA_EXPORT YGValue YGNodeStyleGetMinWidth(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetMinHeight( const YGNodeRef node, const float minHeight) { - auto value = CompactValue::ofMaybe(minHeight); + auto value = detail::CompactValue::ofMaybe(minHeight); updateIndexedStyleProp( - node, &Style::minDimensions, YGDimensionHeight, value); + node, &YGStyle::minDimensions, YGDimensionHeight, value); } YOGA_EXPORT void YGNodeStyleSetMinHeightPercent( const YGNodeRef node, const float minHeight) { - auto value = CompactValue::ofMaybe(minHeight); + auto value = detail::CompactValue::ofMaybe(minHeight); updateIndexedStyleProp( - node, &Style::minDimensions, YGDimensionHeight, value); + node, &YGStyle::minDimensions, YGDimensionHeight, value); } YOGA_EXPORT YGValue YGNodeStyleGetMinHeight(const YGNodeConstRef node) { return node->getStyle().minDimensions()[YGDimensionHeight]; @@ -858,16 +868,16 @@ YOGA_EXPORT YGValue YGNodeStyleGetMinHeight(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetMaxWidth( const YGNodeRef node, const float maxWidth) { - auto value = CompactValue::ofMaybe(maxWidth); + auto value = detail::CompactValue::ofMaybe(maxWidth); updateIndexedStyleProp( - node, &Style::maxDimensions, YGDimensionWidth, value); + node, &YGStyle::maxDimensions, YGDimensionWidth, value); } YOGA_EXPORT void YGNodeStyleSetMaxWidthPercent( const YGNodeRef node, const float maxWidth) { - auto value = CompactValue::ofMaybe(maxWidth); + auto value = detail::CompactValue::ofMaybe(maxWidth); updateIndexedStyleProp( - node, &Style::maxDimensions, YGDimensionWidth, value); + node, &YGStyle::maxDimensions, YGDimensionWidth, value); } YOGA_EXPORT YGValue YGNodeStyleGetMaxWidth(const YGNodeConstRef node) { return node->getStyle().maxDimensions()[YGDimensionWidth]; @@ -876,16 +886,16 @@ YOGA_EXPORT YGValue YGNodeStyleGetMaxWidth(const YGNodeConstRef node) { YOGA_EXPORT void YGNodeStyleSetMaxHeight( const YGNodeRef node, const float maxHeight) { - auto value = CompactValue::ofMaybe(maxHeight); + auto value = detail::CompactValue::ofMaybe(maxHeight); updateIndexedStyleProp( - node, &Style::maxDimensions, YGDimensionHeight, value); + node, &YGStyle::maxDimensions, YGDimensionHeight, value); } YOGA_EXPORT void YGNodeStyleSetMaxHeightPercent( const YGNodeRef node, const float maxHeight) { - auto value = CompactValue::ofMaybe(maxHeight); + auto value = detail::CompactValue::ofMaybe(maxHeight); updateIndexedStyleProp( - node, &Style::maxDimensions, YGDimensionHeight, value); + node, &YGStyle::maxDimensions, YGDimensionHeight, value); } YOGA_EXPORT YGValue YGNodeStyleGetMaxHeight(const YGNodeConstRef node) { return node->getStyle().maxDimensions()[YGDimensionHeight]; @@ -2509,7 +2519,7 @@ static void YGJustifyMainAxis( i < collectedFlexItemsValues.endOfLineIndex; i++) { const YGNodeRef child = node->getChild(i); - const Style& childStyle = child->getStyle(); + const YGStyle& childStyle = child->getStyle(); const YGLayout childLayout = child->getLayout(); const bool isLastChild = i == collectedFlexItemsValues.endOfLineIndex - 1; // remove the gap if it is the last element of the line