Summary: This is a prototype for view preview within Flipper for iOS (Android next). If enabled, a preview of the selected element is rendered in the attribute inspector. Changelog: Add view preview/snapshot for the Layout plugin on iOS. Reviewed By: antonk52 Differential Revision: D34990372 fbshipit-source-id: 1984514fbf59041ad236008a8db10569c5fc5f94
51 lines
1.4 KiB
Objective-C
51 lines
1.4 KiB
Objective-C
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#if FB_SONARKIT_ENABLED
|
|
|
|
#import "SKViewControllerDescriptor.h"
|
|
|
|
@implementation SKViewControllerDescriptor
|
|
|
|
- (NSString*)identifierForNode:(UIViewController*)node {
|
|
return [NSString stringWithFormat:@"%p", node];
|
|
}
|
|
|
|
- (NSUInteger)childCountForNode:(UIViewController*)node {
|
|
return 1;
|
|
}
|
|
|
|
- (id)childForNode:(UIViewController*)node atIndex:(NSUInteger)index {
|
|
return node.view;
|
|
}
|
|
|
|
- (void)setHighlightedForNode:(UIViewController*)node {
|
|
}
|
|
|
|
- (NSArray<SKNamed<NSString*>*>*)attributesForNode:(UIViewController*)node {
|
|
return @[ [SKNamed newWithName:@"addr"
|
|
withValue:[NSString stringWithFormat:@"%p", node]] ];
|
|
}
|
|
|
|
- (void)setHighlighted:(BOOL)highlighted forNode:(UIViewController*)node {
|
|
SKNodeDescriptor* descriptor = [self descriptorForClass:[UIView class]];
|
|
[descriptor setHighlighted:highlighted forNode:node.view];
|
|
}
|
|
|
|
- (UIImage*)getSnapshot:(BOOL)includeChildren forNode:(UIViewController*)node {
|
|
SKNodeDescriptor* descriptor = [self descriptorForClass:[UIView class]];
|
|
return [descriptor getSnapshot:includeChildren forNode:node.view];
|
|
}
|
|
|
|
- (void)hitTest:(SKTouch*)touch forNode:(UIViewController*)node {
|
|
[touch continueWithChildIndex:0 withOffset:(CGPoint){0, 0}];
|
|
}
|
|
|
|
@end
|
|
|
|
#endif
|