diff --git a/YogaKit/YGLayout.h b/YogaKit/YGLayout.h index 70363507..6b8ded62 100644 --- a/YogaKit/YGLayout.h +++ b/YogaKit/YGLayout.h @@ -9,7 +9,6 @@ #import #import -#import @interface YGLayout : NSObject diff --git a/YogaKit/YGLayout.m b/YogaKit/YGLayout.m index dda188f5..1817eb38 100644 --- a/YogaKit/YGLayout.m +++ b/YogaKit/YGLayout.m @@ -10,11 +10,6 @@ #import "YGLayout+Private.h" #import "UIView+Yoga.h" #import -#import - -extern YGValue YGValueMake(CGFloat value, YGUnit unit) { - return (YGValue) { .value = value, .unit = unit }; -} #define YG_STYLE_PROPERTY_IMPL(type, lowercased_name, capitalized_name) \ - (type)lowercased_name \ @@ -81,7 +76,7 @@ YG_STYLE_EDGE_PROPERTY_UNIT_IMPL(lowercased_name, capitalized_name, YGEdgeAll, ) @interface YGLayout () -@property (nonatomic, weak, readonly) UIView* view; +@property (nonatomic, weak, readonly) UIView *view; @property (nonatomic, assign, readonly) YGNodeRef node; @end diff --git a/enums.py b/enums.py index 6945f566..860d886e 100644 --- a/enums.py +++ b/enums.py @@ -125,24 +125,14 @@ with open(root + '/yoga/YGEnums.h', 'w') as f: f.write('#include "YGMacros.h"\n\n') f.write('YG_EXTERN_C_BEGIN\n\n') for name, values in ENUMS.items(): - f.write('#define YG%sCount %s\n' % (name, len(values))) - f.write('#ifndef NS_ENUM\n') - f.write('typedef enum YG%s {\n' % name) + f.write('#define YG%sCount %s\n' % (name, len(values))) + f.write('typedef YG_ENUM_BEGIN(YG%s) {\n' % name) for value in values: if isinstance(value, tuple): f.write(' YG%s%s = %d,\n' % (name, value[0], value[1])) else: f.write(' YG%s%s,\n' % (name, value)) - f.write('} YG%s;\n' % name) - f.write('#else\n') - f.write('typedef NS_ENUM(NSInteger, YG%s) {\n' % name) - for value in values: - if isinstance(value, tuple): - f.write(' YG%s%s = %d,\n' % (name, value[0], value[1])) - else: - f.write(' YG%s%s,\n' % (name, value)) - f.write('};\n') - f.write('#endif\n') + f.write('} YG_ENUM_END(YG%s);\n' % name) f.write('\n') f.write('YG_EXTERN_C_END\n') diff --git a/yoga/YGEnums.h b/yoga/YGEnums.h index 1b2b44ef..099f6d30 100644 --- a/yoga/YGEnums.h +++ b/yoga/YGEnums.h @@ -14,55 +14,29 @@ YG_EXTERN_C_BEGIN #define YGFlexDirectionCount 4 -#ifndef NS_ENUM -typedef enum YGFlexDirection { +typedef YG_ENUM_BEGIN(YGFlexDirection) { YGFlexDirectionColumn, YGFlexDirectionColumnReverse, YGFlexDirectionRow, YGFlexDirectionRowReverse, -} YGFlexDirection; -#else -typedef NS_ENUM(NSInteger, YGFlexDirection) { - YGFlexDirectionColumn, - YGFlexDirectionColumnReverse, - YGFlexDirectionRow, - YGFlexDirectionRowReverse, -}; -#endif +} YG_ENUM_END(YGFlexDirection); #define YGMeasureModeCount 3 -#ifndef NS_ENUM -typedef enum YGMeasureMode { +typedef YG_ENUM_BEGIN(YGMeasureMode) { YGMeasureModeUndefined, YGMeasureModeExactly, YGMeasureModeAtMost, -} YGMeasureMode; -#else -typedef NS_ENUM(NSInteger, YGMeasureMode) { - YGMeasureModeUndefined, - YGMeasureModeExactly, - YGMeasureModeAtMost, -}; -#endif +} YG_ENUM_END(YGMeasureMode); #define YGPrintOptionsCount 3 -#ifndef NS_ENUM -typedef enum YGPrintOptions { +typedef YG_ENUM_BEGIN(YGPrintOptions) { YGPrintOptionsLayout = 1, YGPrintOptionsStyle = 2, YGPrintOptionsChildren = 4, -} YGPrintOptions; -#else -typedef NS_ENUM(NSInteger, YGPrintOptions) { - YGPrintOptionsLayout = 1, - YGPrintOptionsStyle = 2, - YGPrintOptionsChildren = 4, -}; -#endif +} YG_ENUM_END(YGPrintOptions); #define YGEdgeCount 9 -#ifndef NS_ENUM -typedef enum YGEdge { +typedef YG_ENUM_BEGIN(YGEdge) { YGEdgeLeft, YGEdgeTop, YGEdgeRight, @@ -72,173 +46,78 @@ typedef enum YGEdge { YGEdgeHorizontal, YGEdgeVertical, YGEdgeAll, -} YGEdge; -#else -typedef NS_ENUM(NSInteger, YGEdge) { - YGEdgeLeft, - YGEdgeTop, - YGEdgeRight, - YGEdgeBottom, - YGEdgeStart, - YGEdgeEnd, - YGEdgeHorizontal, - YGEdgeVertical, - YGEdgeAll, -}; -#endif +} YG_ENUM_END(YGEdge); #define YGPositionTypeCount 2 -#ifndef NS_ENUM -typedef enum YGPositionType { +typedef YG_ENUM_BEGIN(YGPositionType) { YGPositionTypeRelative, YGPositionTypeAbsolute, -} YGPositionType; -#else -typedef NS_ENUM(NSInteger, YGPositionType) { - YGPositionTypeRelative, - YGPositionTypeAbsolute, -}; -#endif +} YG_ENUM_END(YGPositionType); #define YGDimensionCount 2 -#ifndef NS_ENUM -typedef enum YGDimension { +typedef YG_ENUM_BEGIN(YGDimension) { YGDimensionWidth, YGDimensionHeight, -} YGDimension; -#else -typedef NS_ENUM(NSInteger, YGDimension) { - YGDimensionWidth, - YGDimensionHeight, -}; -#endif +} YG_ENUM_END(YGDimension); #define YGJustifyCount 5 -#ifndef NS_ENUM -typedef enum YGJustify { +typedef YG_ENUM_BEGIN(YGJustify) { YGJustifyFlexStart, YGJustifyCenter, YGJustifyFlexEnd, YGJustifySpaceBetween, YGJustifySpaceAround, -} YGJustify; -#else -typedef NS_ENUM(NSInteger, YGJustify) { - YGJustifyFlexStart, - YGJustifyCenter, - YGJustifyFlexEnd, - YGJustifySpaceBetween, - YGJustifySpaceAround, -}; -#endif +} YG_ENUM_END(YGJustify); #define YGDirectionCount 3 -#ifndef NS_ENUM -typedef enum YGDirection { +typedef YG_ENUM_BEGIN(YGDirection) { YGDirectionInherit, YGDirectionLTR, YGDirectionRTL, -} YGDirection; -#else -typedef NS_ENUM(NSInteger, YGDirection) { - YGDirectionInherit, - YGDirectionLTR, - YGDirectionRTL, -}; -#endif +} YG_ENUM_END(YGDirection); #define YGLogLevelCount 5 -#ifndef NS_ENUM -typedef enum YGLogLevel { +typedef YG_ENUM_BEGIN(YGLogLevel) { YGLogLevelError, YGLogLevelWarn, YGLogLevelInfo, YGLogLevelDebug, YGLogLevelVerbose, -} YGLogLevel; -#else -typedef NS_ENUM(NSInteger, YGLogLevel) { - YGLogLevelError, - YGLogLevelWarn, - YGLogLevelInfo, - YGLogLevelDebug, - YGLogLevelVerbose, -}; -#endif +} YG_ENUM_END(YGLogLevel); #define YGWrapCount 2 -#ifndef NS_ENUM -typedef enum YGWrap { +typedef YG_ENUM_BEGIN(YGWrap) { YGWrapNoWrap, YGWrapWrap, -} YGWrap; -#else -typedef NS_ENUM(NSInteger, YGWrap) { - YGWrapNoWrap, - YGWrapWrap, -}; -#endif +} YG_ENUM_END(YGWrap); #define YGOverflowCount 3 -#ifndef NS_ENUM -typedef enum YGOverflow { +typedef YG_ENUM_BEGIN(YGOverflow) { YGOverflowVisible, YGOverflowHidden, YGOverflowScroll, -} YGOverflow; -#else -typedef NS_ENUM(NSInteger, YGOverflow) { - YGOverflowVisible, - YGOverflowHidden, - YGOverflowScroll, -}; -#endif +} YG_ENUM_END(YGOverflow); #define YGExperimentalFeatureCount 2 -#ifndef NS_ENUM -typedef enum YGExperimentalFeature { +typedef YG_ENUM_BEGIN(YGExperimentalFeature) { YGExperimentalFeatureRounding, YGExperimentalFeatureWebFlexBasis, -} YGExperimentalFeature; -#else -typedef NS_ENUM(NSInteger, YGExperimentalFeature) { - YGExperimentalFeatureRounding, - YGExperimentalFeatureWebFlexBasis, -}; -#endif +} YG_ENUM_END(YGExperimentalFeature); #define YGAlignCount 5 -#ifndef NS_ENUM -typedef enum YGAlign { +typedef YG_ENUM_BEGIN(YGAlign) { YGAlignAuto, YGAlignFlexStart, YGAlignCenter, YGAlignFlexEnd, YGAlignStretch, -} YGAlign; -#else -typedef NS_ENUM(NSInteger, YGAlign) { - YGAlignAuto, - YGAlignFlexStart, - YGAlignCenter, - YGAlignFlexEnd, - YGAlignStretch, -}; -#endif +} YG_ENUM_END(YGAlign); #define YGUnitCount 3 -#ifndef NS_ENUM -typedef enum YGUnit { +typedef YG_ENUM_BEGIN(YGUnit) { YGUnitUndefined, YGUnitPixel, YGUnitPercent, -} YGUnit; -#else -typedef NS_ENUM(NSInteger, YGUnit) { - YGUnitUndefined, - YGUnitPixel, - YGUnitPercent, -}; -#endif +} YG_ENUM_END(YGUnit); YG_EXTERN_C_END diff --git a/yoga/YGMacros.h b/yoga/YGMacros.h index def8371a..0d09a693 100644 --- a/yoga/YGMacros.h +++ b/yoga/YGMacros.h @@ -40,3 +40,19 @@ YG_ABORT(); \ } #endif + +#ifndef YG_ENUM_BEGIN +#ifndef NS_ENUM +#define YG_ENUM_BEGIN(name) enum name +#else +#define YG_ENUM_BEGIN(name) NS_ENUM(NSInteger, name) +#endif +#endif + +#ifndef YG_ENUM_END +#ifndef NS_ENUM +#define YG_ENUM_END(name) name +#else +#define YG_ENUM_END(name) +#endif +#endif \ No newline at end of file diff --git a/yoga/YGValue.h b/yoga/YGValue.h deleted file mode 100644 index de5aafbf..00000000 --- a/yoga/YGValue.h +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#pragma once - -YG_EXTERN_C_BEGIN - -typedef struct YGValue { - float value; - YGUnit unit; -} YGValue; - -YG_EXTERN_C_END \ No newline at end of file diff --git a/yoga/Yoga.h b/yoga/Yoga.h index 05d8b883..083d3073 100644 --- a/yoga/Yoga.h +++ b/yoga/Yoga.h @@ -30,7 +30,6 @@ static const unsigned long __nan[2] = {0xffffffff, 0x7fffffff}; #include "YGEnums.h" #include "YGMacros.h" -#include "YGValue.h" YG_EXTERN_C_BEGIN @@ -39,6 +38,11 @@ typedef struct YGSize { float height; } YGSize; +typedef struct YGValue { + float value; + YGUnit unit; +} YGValue; + typedef struct YGNode *YGNodeRef; typedef YGSize (*YGMeasureFunc)(YGNodeRef node, float width,