1*67e74705SXin Li #ifndef NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H 2*67e74705SXin Li #define NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H 3*67e74705SXin Li 4*67e74705SXin Li #define BOXABLE __attribute__((objc_boxable)) 5*67e74705SXin Li 6*67e74705SXin Li typedef unsigned long NSUInteger; 7*67e74705SXin Li typedef double CGFloat; 8*67e74705SXin Li 9*67e74705SXin Li typedef struct BOXABLE _NSRange { 10*67e74705SXin Li NSUInteger location; 11*67e74705SXin Li NSUInteger length; 12*67e74705SXin Li } NSRange; 13*67e74705SXin Li 14*67e74705SXin Li typedef struct BOXABLE _NSPoint { 15*67e74705SXin Li CGFloat x; 16*67e74705SXin Li CGFloat y; 17*67e74705SXin Li } NSPoint; 18*67e74705SXin Li 19*67e74705SXin Li typedef struct BOXABLE _NSSize { 20*67e74705SXin Li CGFloat width; 21*67e74705SXin Li CGFloat height; 22*67e74705SXin Li } NSSize; 23*67e74705SXin Li 24*67e74705SXin Li typedef struct BOXABLE _NSRect { 25*67e74705SXin Li NSPoint origin; 26*67e74705SXin Li NSSize size; 27*67e74705SXin Li } NSRect; 28*67e74705SXin Li 29*67e74705SXin Li struct CGPoint { 30*67e74705SXin Li CGFloat x; 31*67e74705SXin Li CGFloat y; 32*67e74705SXin Li }; 33*67e74705SXin Li typedef struct BOXABLE CGPoint CGPoint; 34*67e74705SXin Li 35*67e74705SXin Li struct CGSize { 36*67e74705SXin Li CGFloat width; 37*67e74705SXin Li CGFloat height; 38*67e74705SXin Li }; 39*67e74705SXin Li typedef struct BOXABLE CGSize CGSize; 40*67e74705SXin Li 41*67e74705SXin Li struct CGRect { 42*67e74705SXin Li CGPoint origin; 43*67e74705SXin Li CGSize size; 44*67e74705SXin Li }; 45*67e74705SXin Li typedef struct BOXABLE CGRect CGRect; 46*67e74705SXin Li 47*67e74705SXin Li struct NSEdgeInsets { 48*67e74705SXin Li CGFloat top; 49*67e74705SXin Li CGFloat left; 50*67e74705SXin Li CGFloat bottom; 51*67e74705SXin Li CGFloat right; 52*67e74705SXin Li }; 53*67e74705SXin Li typedef struct BOXABLE NSEdgeInsets NSEdgeInsets; 54*67e74705SXin Li 55*67e74705SXin Li @interface NSValue 56*67e74705SXin Li 57*67e74705SXin Li + (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type; 58*67e74705SXin Li 59*67e74705SXin Li @end 60*67e74705SXin Li 61*67e74705SXin Li NSRange getRange(); 62*67e74705SXin Li 63*67e74705SXin Li #endif // NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H 64