| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- //
- // 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 <objc/runtime.h>
- #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
|