OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // ====== New Architecture ===== | |
6 // = This code is only used in the new iOS Chrome architecture. = | |
7 // ============================================================================ | |
8 | |
9 #import "ios/chrome/browser/ui/tools/tools_coordinator.h" | |
10 | |
11 #import "ios/chrome/browser/ui/animators/zoom_transition_animator.h" | |
12 #import "ios/chrome/browser/ui/presenters/menu_presentation_controller.h" | |
13 #import "ios/chrome/browser/ui/tools/menu_view_controller.h" | |
14 | |
15 #if !defined(__has_feature) || !__has_feature(objc_arc) | |
16 #error "This file requires ARC support." | |
17 #endif | |
18 | |
19 @interface ToolsCoordinator ()<UIViewControllerTransitioningDelegate> | |
20 @property(nonatomic, strong) MenuViewController* menuViewController; | |
21 @end | |
22 | |
23 @implementation ToolsCoordinator | |
24 @synthesize menuViewController = _menuViewController; | |
25 | |
26 #pragma mark - BrowserCoordinator | |
27 | |
28 - (void)start { | |
29 self.menuViewController = [[MenuViewController alloc] init]; | |
30 self.menuViewController.modalPresentationStyle = UIModalPresentationCustom; | |
31 self.menuViewController.transitioningDelegate = self; | |
32 | |
33 [self.rootViewController presentViewController:self.menuViewController | |
34 animated:YES | |
35 completion:nil]; | |
36 } | |
37 | |
38 - (void)stop { | |
39 [self.menuViewController dismissViewControllerAnimated:YES completion:nil]; | |
40 } | |
41 | |
42 #pragma mark - UIViewControllerTransitioningDelegate | |
43 | |
44 - (id<UIViewControllerAnimatedTransitioning>) | |
45 animationControllerForPresentedController:(UIViewController*)presented | |
46 presentingController:(UIViewController*)presenting | |
47 sourceController:(UIViewController*)source { | |
48 ZoomTransitionAnimator* animator = [[ZoomTransitionAnimator alloc] init]; | |
49 animator.presenting = YES; | |
50 [animator selectDelegate:@[ source, presenting ]]; | |
51 return animator; | |
52 } | |
53 | |
54 - (id<UIViewControllerAnimatedTransitioning>) | |
55 animationControllerForDismissedController:(UIViewController*)dismissed { | |
56 ZoomTransitionAnimator* animator = [[ZoomTransitionAnimator alloc] init]; | |
57 animator.presenting = NO; | |
58 [animator selectDelegate:@[ dismissed.presentingViewController ]]; | |
59 return animator; | |
60 } | |
61 | |
62 - (UIPresentationController*) | |
63 presentationControllerForPresentedViewController:(UIViewController*)presented | |
64 presentingViewController:(UIViewController*)presenting | |
65 sourceViewController:(UIViewController*)source { | |
66 MenuPresentationController* menuPresentation = | |
67 [[MenuPresentationController alloc] | |
68 initWithPresentedViewController:presented | |
69 presentingViewController:presenting]; | |
70 return menuPresentation; | |
71 } | |
72 | |
73 @end | |
OLD | NEW |