add macOS descriptors for layout plugin

Summary: Add macOS only descriptors. Currently does not support Yoga/YogaKit or accessibility features; will add those in a later diff.

Reviewed By: priteshrnandgaonkar

Differential Revision: D27332601

fbshipit-source-id: 35c93cf715f004dbf8dbf8753534f1d4f9801b4c
This commit is contained in:
Kyle Cui
2021-03-29 16:11:32 -07:00
committed by Facebook GitHub Bot
parent 7c44d4d4f0
commit ed69c4f16a
14 changed files with 700 additions and 1 deletions

View File

@@ -70,8 +70,12 @@ NSObject* flattenLayoutEditorMessage(NSObject* field);
_connection = connection;
if (!_rootNode) {
// TODO: T61384369 get rid off this if condition.
// TODO: T61384369 get rid off this if condition.
#if TARGET_OS_IPHONE
_rootNode = [UIApplication sharedApplication];
#elif TARGET_OS_OSX
_rootNode = [NSApplication sharedApplication];
#endif
}
[SKInvalidation enableInvalidations];
@@ -366,7 +370,11 @@ NSObject* flattenLayoutEditorMessage(NSObject* field) {
- (void)onCallSetSearchActive:(BOOL)active
withConnection:(id<FlipperConnection>)connection {
if (active) {
#if TARGET_OS_IPHONE
[_tapListener mountWithFrame:[[UIScreen mainScreen] bounds]];
#elif TARGET_OS_OSX
[_tapListener mountWithFrame:NSRectToCGRect([NSScreen mainScreen].frame)];
#endif
__block id<NSObject> rootNode = _rootNode;
[_tapListener listenForTapWithBlock:^(CGPoint touchPoint) {

View File

@@ -9,12 +9,25 @@
#import "SKDescriptorMapper.h"
#if TARGET_OS_IPHONE
#import <FlipperKitLayoutIOSDescriptors/SKApplicationDescriptor.h>
#import <FlipperKitLayoutIOSDescriptors/SKButtonDescriptor.h>
#import <FlipperKitLayoutIOSDescriptors/SKScrollViewDescriptor.h>
#import <FlipperKitLayoutIOSDescriptors/SKViewControllerDescriptor.h>
#import <FlipperKitLayoutIOSDescriptors/SKViewDescriptor.h>
#elif TARGET_OS_OSX
#import <FlipperKitLayoutMacOSDescriptors/SKNSApplicationDescriptor.h>
#import <FlipperKitLayoutMacOSDescriptors/SKNSButtonDescriptor.h>
#import <FlipperKitLayoutMacOSDescriptors/SKNSScrollViewDescriptor.h>
#import <FlipperKitLayoutMacOSDescriptors/SKNSViewControllerDescriptor.h>
#import <FlipperKitLayoutMacOSDescriptors/SKNSViewDescriptor.h>
#import <FlipperKitLayoutMacOSDescriptors/SKNSWindowDescriptor.h>
#endif
@implementation SKDescriptorMapper {
NSMutableDictionary<NSString*, SKNodeDescriptor*>* _descriptors;
}
@@ -23,6 +36,7 @@
if (self = [super init]) {
_descriptors = [NSMutableDictionary new];
#if TARGET_OS_IPHONE
[self registerDescriptor:[[SKApplicationDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[UIApplication class]];
@@ -38,6 +52,27 @@
[self registerDescriptor:[[SKViewDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[UIView class]];
#elif TARGET_OS_OSX
[self registerDescriptor:[[SKNSApplicationDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[NSApplication class]];
[self registerDescriptor:[[SKNSViewControllerDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[NSViewController class]];
[self registerDescriptor:[[SKNSScrollViewDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[NSScrollView class]];
[self registerDescriptor:[[SKNSButtonDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[NSButton class]];
[self registerDescriptor:[[SKNSViewDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[NSView class]];
[self registerDescriptor:[[SKNSWindowDescriptor alloc]
initWithDescriptorMapper:self]
forClass:[NSWindow class]];
#endif
}
return self;