// // FLEXShortcutsFactory+Defaults.m // FLEX // // Created by Tanner Bennett on 8/29/19. // Copyright © 2019 Flipboard. All rights reserved. // #import "FLEXShortcutsFactory+Defaults.h" #import "FLEXShortcut.h" #import #pragma mark - Views @implementation FLEXShortcutsFactory (Views) + (void)load { // Only available since iOS 3.2, but we never supported iOS 3, so who cares NSArray *ivars = @[@"_gestureRecognizers"]; // UIVIew self.append.ivars(ivars).properties(@[ @"frame", @"bounds", @"center", @"transform", @"backgroundColor", @"alpha", @"opaque", @"hidden", @"clipsToBounds", @"userInteractionEnabled", @"layer", @"superview", @"subviews" ]).forClass(UIView.class); // UILabel self.append.ivars(ivars).properties(@[ @"text", @"attributedText", @"font", @"frame", @"textColor", @"textAlignment", @"numberOfLines", @"lineBreakMode", @"enabled", @"backgroundColor", @"alpha", @"hidden", @"preferredMaxLayoutWidth", @"superview", @"subviews" ]).forClass(UILabel.class); // UIWindow self.append.ivars(ivars).properties(@[ @"rootViewController", @"windowLevel", @"keyWindow", @"frame", @"bounds", @"center", @"transform", @"backgroundColor", @"alpha", @"opaque", @"hidden", @"clipsToBounds", @"userInteractionEnabled", @"layer", @"subviews" ]).forClass(UIWindow.class); if (@available(iOS 13, *)) { self.append.properties(@[@"windowScene"]).forClass(UIWindow.class); } ivars = @[@"_targetActions", @"_gestureRecognizers"]; // UIControl self.append.ivars(ivars).properties(@[ @"enabled", @"allTargets", @"frame", @"backgroundColor", @"hidden", @"clipsToBounds", @"userInteractionEnabled", @"superview", @"subviews" ]).forClass(UIControl.class); // UIButton self.append.ivars(ivars).properties(@[ @"titleLabel", @"font", @"imageView", @"tintColor", @"currentTitle", @"currentImage", @"enabled", @"frame", @"superview", @"subviews" ]).forClass(UIButton.class); } @end #pragma mark - View Controllers @implementation FLEXShortcutsFactory (ViewControllers) + (void)load { // UIViewController self.append .properties(@[@"view", @"title", @"navigationItem"]) .forClass(UIViewController.class); } @end #pragma mark - UIImage @implementation FLEXShortcutsFactory (UIImage) + (void)load { self.append.methods(@[ @"CGImage", @"CIImage" ]).properties(@[ @"scale", @"size", @"capInsets", @"alignmentRectInsets", @"duration", @"images" ]).forClass(UIImage.class); if (@available(iOS 13, *)) { self.append.properties(@[@"symbolImage"]); } } @end #pragma mark - NSBundle @implementation FLEXShortcutsFactory (NSBundle) + (void)load { self.append.properties(@[ @"bundleIdentifier", @"principalClass", @"infoDictionary", @"bundlePath", @"executablePath", @"loaded" ]).forClass(NSBundle.class); } @end #pragma mark - Classes @implementation FLEXShortcutsFactory (Classes) + (void)load { self.append.methods(@[@"new", @"alloc"]).forClass(objc_getMetaClass("NSObject")); } @end #pragma mark - Activities @implementation FLEXShortcutsFactory (Activities) + (void)load { self.append.properties(@[ @"item", @"placeholderItem", @"activityType" ]).forClass(UIActivityItemProvider.class); self.append.properties(@[ @"activityItems", @"applicationActivities", @"excludedActivityTypes", @"completionHandler" ]).forClass(UIActivityViewController.class); } @end