Updates from Mon Feb 16
- Ported RCTViewManager to FBReactKit | Nick Lockwood
This commit is contained in:
parent
eeb0bf145d
commit
3d9d8e6a5a
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
#import "RCTConvert.h"
|
#import "RCTConvert.h"
|
||||||
|
|
||||||
|
#import <objc/message.h>
|
||||||
|
|
||||||
#import <ImageIO/ImageIO.h>
|
#import <ImageIO/ImageIO.h>
|
||||||
#import <MobileCoreServices/MobileCoreServices.h>
|
#import <MobileCoreServices/MobileCoreServices.h>
|
||||||
#import <objc/message.h>
|
|
||||||
|
|
||||||
#import "RCTLog.h"
|
#import "RCTLog.h"
|
||||||
|
|
||||||
|
@ -431,7 +432,7 @@ RCT_STRUCT_CONVERTER(CGAffineTransform, (@[@"a", @"b", @"c", @"d", @"tx", @"ty"]
|
||||||
|
|
||||||
+ (CAKeyframeAnimation *)GIF:(id)json
|
+ (CAKeyframeAnimation *)GIF:(id)json
|
||||||
{
|
{
|
||||||
CGImageSourceRef imageSource;
|
CGImageSourceRef imageSource = NULL;
|
||||||
if ([json isKindOfClass:[NSString class]]) {
|
if ([json isKindOfClass:[NSString class]]) {
|
||||||
NSString *path = json;
|
NSString *path = json;
|
||||||
if (path.length == 0) {
|
if (path.length == 0) {
|
||||||
|
@ -568,7 +569,7 @@ RCT_STRUCT_CONVERTER(CGAffineTransform, (@[@"a", @"b", @"c", @"d", @"tx", @"ty"]
|
||||||
NSString *familyName = [RCTConvert NSString:family];
|
NSString *familyName = [RCTConvert NSString:family];
|
||||||
if (familyName) {
|
if (familyName) {
|
||||||
if ([UIFont fontNamesForFamilyName:familyName].count == 0) {
|
if ([UIFont fontNamesForFamilyName:familyName].count == 0) {
|
||||||
UIFont *font = [UIFont fontWithName:familyName size:fontDescriptor.pointSize];
|
font = [UIFont fontWithName:familyName size:fontDescriptor.pointSize];
|
||||||
if (font) {
|
if (font) {
|
||||||
// It's actually a font name, not a font family name,
|
// It's actually a font name, not a font family name,
|
||||||
// but we'll do what was meant, not what was said.
|
// but we'll do what was meant, not what was said.
|
||||||
|
|
|
@ -692,7 +692,7 @@ static void RCTSetShadowViewProps(NSDictionary *props, RCTShadowView *shadowView
|
||||||
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
[self addUIBlock:^(RCTUIManager *uiManager, RCTSparseArray *viewRegistry){
|
||||||
RCTCAssertMainThread();
|
RCTCAssertMainThread();
|
||||||
|
|
||||||
// Register manager (TODO: should we do this, or leave it nil?)
|
// Register manager
|
||||||
uiManager->_viewManagerRegistry[reactTag] = manager;
|
uiManager->_viewManagerRegistry[reactTag] = manager;
|
||||||
|
|
||||||
// Generate default view, used for resetting default props
|
// Generate default view, used for resetting default props
|
||||||
|
|
|
@ -64,7 +64,7 @@ typedef void (^RCTApplierBlock)(RCTSparseArray *);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Position and dimensions.
|
* Position and dimensions.
|
||||||
* Defaults to { 0, 0, NAN, NAN }
|
* Defaults to { 0, 0, NAN, NAN }.
|
||||||
*/
|
*/
|
||||||
@property (nonatomic, assign) CGFloat top;
|
@property (nonatomic, assign) CGFloat top;
|
||||||
@property (nonatomic, assign) CGFloat left;
|
@property (nonatomic, assign) CGFloat left;
|
||||||
|
@ -76,12 +76,29 @@ typedef void (^RCTApplierBlock)(RCTSparseArray *);
|
||||||
- (void)setSize:(CGSize)size;
|
- (void)setSize:(CGSize)size;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Border. Defaults to 0.
|
* Border. Defaults to { 0, 0, 0, 0 }.
|
||||||
*/
|
*/
|
||||||
|
@property (nonatomic, assign) CGFloat borderTop;
|
||||||
|
@property (nonatomic, assign) CGFloat borderLeft;
|
||||||
|
@property (nonatomic, assign) CGFloat borderWidth;
|
||||||
|
@property (nonatomic, assign) CGFloat borderHeight;
|
||||||
|
|
||||||
- (void)setBorderWidth:(CGFloat)value;
|
- (void)setBorderWidth:(CGFloat)value;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Padding. Defaults to 0.
|
* Margin. Defaults to { 0, 0, 0, 0 }.
|
||||||
|
*/
|
||||||
|
@property (nonatomic, assign) CGFloat marginTop;
|
||||||
|
@property (nonatomic, assign) CGFloat marginLeft;
|
||||||
|
@property (nonatomic, assign) CGFloat marginBottom;
|
||||||
|
@property (nonatomic, assign) CGFloat marginRight;
|
||||||
|
|
||||||
|
- (void)setMargin:(CGFloat)margin;
|
||||||
|
- (void)setMarginVertical:(CGFloat)margin;
|
||||||
|
- (void)setMarginHorizontal:(CGFloat)margin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Padding. Defaults to { 0, 0, 0, 0 }.
|
||||||
*/
|
*/
|
||||||
@property (nonatomic, assign) CGFloat paddingTop;
|
@property (nonatomic, assign) CGFloat paddingTop;
|
||||||
@property (nonatomic, assign) CGFloat paddingLeft;
|
@property (nonatomic, assign) CGFloat paddingLeft;
|
||||||
|
|
|
@ -126,16 +126,6 @@ static void RCTProcessMetaProps(const float metaProps[META_PROP_COUNT], float st
|
||||||
: 0;
|
: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIEdgeInsets)paddingAsInsets
|
|
||||||
{
|
|
||||||
return (UIEdgeInsets){
|
|
||||||
_cssNode->style.padding[CSS_TOP],
|
|
||||||
_cssNode->style.padding[CSS_LEFT],
|
|
||||||
_cssNode->style.padding[CSS_BOTTOM],
|
|
||||||
_cssNode->style.padding[CSS_RIGHT]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)fillCSSNode:(css_node_t *)node
|
- (void)fillCSSNode:(css_node_t *)node
|
||||||
{
|
{
|
||||||
node->children_count = (int)_reactSubviews.count;
|
node->children_count = (int)_reactSubviews.count;
|
||||||
|
@ -432,7 +422,7 @@ RCT_MARGIN_PROPERTY(Right, RIGHT)
|
||||||
} \
|
} \
|
||||||
- (CGFloat)padding##prop \
|
- (CGFloat)padding##prop \
|
||||||
{ \
|
{ \
|
||||||
return _marginMetaProps[META_PROP_##metaProp]; \
|
return _paddingMetaProps[META_PROP_##metaProp]; \
|
||||||
}
|
}
|
||||||
|
|
||||||
RCT_PADDING_PROPERTY(, ALL)
|
RCT_PADDING_PROPERTY(, ALL)
|
||||||
|
@ -443,8 +433,34 @@ RCT_PADDING_PROPERTY(Left, LEFT)
|
||||||
RCT_PADDING_PROPERTY(Bottom, BOTTOM)
|
RCT_PADDING_PROPERTY(Bottom, BOTTOM)
|
||||||
RCT_PADDING_PROPERTY(Right, RIGHT)
|
RCT_PADDING_PROPERTY(Right, RIGHT)
|
||||||
|
|
||||||
|
- (UIEdgeInsets)paddingAsInsets
|
||||||
|
{
|
||||||
|
return (UIEdgeInsets){
|
||||||
|
_cssNode->style.padding[CSS_TOP],
|
||||||
|
_cssNode->style.padding[CSS_LEFT],
|
||||||
|
_cssNode->style.padding[CSS_BOTTOM],
|
||||||
|
_cssNode->style.padding[CSS_RIGHT]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Border
|
// Border
|
||||||
|
|
||||||
|
#define RCT_BORDER_PROPERTY(prop, metaProp) \
|
||||||
|
- (void)setBorder##prop:(CGFloat)value \
|
||||||
|
{ \
|
||||||
|
_cssNode->style.border[CSS_##metaProp] = value; \
|
||||||
|
[self dirtyLayout]; \
|
||||||
|
} \
|
||||||
|
- (CGFloat)border##prop \
|
||||||
|
{ \
|
||||||
|
return _cssNode->style.border[META_PROP_##metaProp]; \
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_BORDER_PROPERTY(Top, TOP)
|
||||||
|
RCT_BORDER_PROPERTY(Left, LEFT)
|
||||||
|
RCT_BORDER_PROPERTY(Bottom, BOTTOM)
|
||||||
|
RCT_BORDER_PROPERTY(Right, RIGHT)
|
||||||
|
|
||||||
- (void)setBorderWidth:(CGFloat)value
|
- (void)setBorderWidth:(CGFloat)value
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
|
|
|
@ -76,7 +76,7 @@ RCT_REMAP_VIEW_PROPERTY(shadowRadius, layer.shadowRadius)
|
||||||
RCT_REMAP_VIEW_PROPERTY(borderColor, layer.borderColor);
|
RCT_REMAP_VIEW_PROPERTY(borderColor, layer.borderColor);
|
||||||
RCT_REMAP_VIEW_PROPERTY(borderRadius, layer.cornerRadius)
|
RCT_REMAP_VIEW_PROPERTY(borderRadius, layer.cornerRadius)
|
||||||
RCT_REMAP_VIEW_PROPERTY(borderWidth, layer.borderWidth)
|
RCT_REMAP_VIEW_PROPERTY(borderWidth, layer.borderWidth)
|
||||||
RCT_REMAP_VIEW_PROPERTY(transformMatrix, view.layer.transform)
|
RCT_REMAP_VIEW_PROPERTY(transformMatrix, layer.transform)
|
||||||
|
|
||||||
- (void)set_overflow:(id)json
|
- (void)set_overflow:(id)json
|
||||||
forView:(UIView *)view
|
forView:(UIView *)view
|
||||||
|
@ -86,11 +86,11 @@ RCT_REMAP_VIEW_PROPERTY(transformMatrix, view.layer.transform)
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)set_pointerEvents:(id)json
|
- (void)set_pointerEvents:(id)json
|
||||||
forView:(UIView *)view
|
forView:(RCTView *)view
|
||||||
withDefaultView:(UIView *)defaultView
|
withDefaultView:(RCTView *)defaultView
|
||||||
{
|
{
|
||||||
if ([view respondsToSelector:@selector(setPointerEvents:)]) {
|
if ([view respondsToSelector:@selector(setPointerEvents:)]) {
|
||||||
[(id)view setPointerEvents:json ? [RCTConvert RCTPointerEvents:json] : [(id)defaultView pointerEvents]];
|
view.pointerEvents = json ? [RCTConvert RCTPointerEvents:json] : defaultView.pointerEvents;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue