Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ObjectExplorer: Add a new Shortcut for UIWindow to change animations speed #629

Merged
merged 6 commits into from
Sep 26, 2022
2 changes: 2 additions & 0 deletions Classes/ObjectExplorers/FLEXObjectExplorerFactory.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#import "FLEXGlobalsViewController.h"
#import "FLEXClassShortcuts.h"
#import "FLEXViewShortcuts.h"
#import "FLEXWindowShortcuts.h"
#import "FLEXViewControllerShortcuts.h"
#import "FLEXUIAppShortcuts.h"
#import "FLEXImageShortcuts.h"
Expand Down Expand Up @@ -48,6 +49,7 @@ + (void)initialize {
ClassKey(UIViewController) : [FLEXViewControllerShortcuts class],
ClassKey(UIApplication) : [FLEXUIAppShortcuts class],
ClassKey(UIView) : [FLEXViewShortcuts class],
ClassKey(UIWindow) : [FLEXWindowShortcuts class],
ClassKey(UIImage) : [FLEXImageShortcuts class],
ClassKey(CALayer) : [FLEXLayerShortcuts class],
ClassKey(UIColor) : [FLEXColorPreviewSection class],
Expand Down
13 changes: 13 additions & 0 deletions Classes/ObjectExplorers/Sections/Shortcuts/FLEXWindowShortcuts.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// FLEXWindowShortcuts.h
// FLEX
//
// Created by AnthoPak on 26/09/2022.
//

#import "FLEXShortcutsSection.h"

/// Adds "Animations Speed" shortcut for all windows
@interface FLEXWindowShortcuts : FLEXShortcutsSection

@end
45 changes: 45 additions & 0 deletions Classes/ObjectExplorers/Sections/Shortcuts/FLEXWindowShortcuts.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
//
// FLEXWindowShortcuts.m
// FLEX
//
// Created by AnthoPak on 26/09/2022.
//

#import "FLEXWindowShortcuts.h"
#import "FLEXShortcut.h"
#import "FLEXAlert.h"
#import "FLEXObjectExplorerViewController.h"

@implementation FLEXWindowShortcuts

#pragma mark - Overrides

+ (instancetype)forObject:(UIView *)view {
return [self forObject:view additionalRows:@[
[FLEXActionShortcut title:@"Animations Speed" subtitle:^NSString *(UIWindow *window) {
NSExceptional marked this conversation as resolved.
Show resolved Hide resolved
return [NSString stringWithFormat:@"Current speed: %.2f", window.layer.speed];
} selectionHandler:^(UIViewController *host, UIWindow *window) {
[FLEXAlert makeAlert:^(FLEXAlert *make) {
make.title(@"Change Animations Speed");
NSExceptional marked this conversation as resolved.
Show resolved Hide resolved
make.message([NSString stringWithFormat:@"Current speed: %.2f", window.layer.speed]);
make.configuredTextField(^(UITextField * _Nonnull textField) {
textField.placeholder = @"Speed value";
NSExceptional marked this conversation as resolved.
Show resolved Hide resolved
textField.keyboardType = UIKeyboardTypeDecimalPad;
});

make.button(@"OK").handler(^(NSArray<NSString *> *strings) {
CGFloat speedValue = strings.firstObject.floatValue;
window.layer.speed = speedValue;

// Refresh the host view controller to update the shortcut subtitle, reflecting current speed
[(FLEXObjectExplorerViewController *)host reloadData];
NSExceptional marked this conversation as resolved.
Show resolved Hide resolved
});
make.button(@"Cancel").cancelStyle();
} showFrom:host];
} accessoryType:^UITableViewCellAccessoryType(id _Nonnull object) {
return UITableViewCellAccessoryDisclosureIndicator;
}]
]];
}

@end