Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(599)

Side by Side Diff: ios/clean/chrome/browser/ui/context_menu/web_context_menu_coordinator.mm

Issue 2862783002: [iOS Clean] Wired up ContextMenuCommands. (Closed)
Patch Set: cleanup Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/clean/chrome/browser/ui/context_menu/web_context_menu_coordinator.h " 5 #import "ios/clean/chrome/browser/ui/context_menu/web_context_menu_coordinator.h "
6 6
7 #include "base/logging.h"
8 #import "ios/clean/chrome/browser/ui/commands/context_menu_commands.h"
9 #import "ios/clean/chrome/browser/ui/context_menu/context_menu_context_impl.h"
7 #import "ios/clean/chrome/browser/ui/context_menu/context_menu_mediator.h" 10 #import "ios/clean/chrome/browser/ui/context_menu/context_menu_mediator.h"
8 #import "ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.h " 11 #import "ios/clean/chrome/browser/ui/context_menu/context_menu_view_controller.h "
9 #import "ios/shared/chrome/browser/ui/browser_list/browser.h" 12 #import "ios/shared/chrome/browser/ui/browser_list/browser.h"
10 #import "ios/shared/chrome/browser/ui/commands/command_dispatcher.h" 13 #import "ios/shared/chrome/browser/ui/commands/command_dispatcher.h"
11 14
12 #if !defined(__has_feature) || !__has_feature(objc_arc) 15 #if !defined(__has_feature) || !__has_feature(objc_arc)
13 #error "This file requires ARC support." 16 #error "This file requires ARC support."
14 #endif 17 #endif
15 18
16 @interface WebContextMenuCoordinator () 19 @interface WebContextMenuCoordinator ()<ContextMenuCommands>
20 // The menu context.
21 @property(nonatomic, strong, readonly) ContextMenuContextImpl* context;
22 // The mediator that handles setting up |viewController|.
17 @property(nonatomic, strong) ContextMenuMediator* mediator; 23 @property(nonatomic, strong) ContextMenuMediator* mediator;
24 // The view controller that displayes the context menu UI.
18 @property(nonatomic, strong) ContextMenuViewController* viewController; 25 @property(nonatomic, strong) ContextMenuViewController* viewController;
26
19 @end 27 @end
20 28
21 @implementation WebContextMenuCoordinator 29 @implementation WebContextMenuCoordinator
30 @synthesize context = _context;
31 @synthesize mediator = _mediator;
22 @synthesize viewController = _viewController; 32 @synthesize viewController = _viewController;
23 @synthesize mediator = _mediator; 33
34 - (instancetype)initWithContext:(ContextMenuContextImpl*)context {
35 if ((self = [super init])) {
36 DCHECK(context);
37 _context = context;
38 }
39 return self;
40 }
41
42 #pragma mark - BrowserCoordinator
24 43
25 - (void)start { 44 - (void)start {
45 id<ContextMenuCommands> contextMenuDispatcher =
46 static_cast<id<ContextMenuCommands>>(self.browser->dispatcher());
26 self.viewController = [[ContextMenuViewController alloc] 47 self.viewController = [[ContextMenuViewController alloc]
27 initWithDispatcher:static_cast<id>(self.browser->dispatcher())]; 48 initWithDispatcher:contextMenuDispatcher];
28 self.mediator = 49 self.mediator =
edchin 2017/05/25 21:41:53 Since the mediator does its job in its initializer
kkhorimoto 2017/05/26 23:20:09 Doing that gave me an unused variable warning when
edchin 2017/05/27 15:59:03 Interesting question. This is the only mediator th
kkhorimoto 2017/05/27 23:09:03 I'm also working on the javascript dialog coordina
29 [[ContextMenuMediator alloc] initWithConsumer:self.viewController]; 50 [[ContextMenuMediator alloc] initWithConsumer:self.viewController
51 context:self.context];
52 [self.browser->dispatcher()
53 startDispatchingToTarget:self
54 forSelector:@selector(hideContextMenu:)];
30 [super start]; 55 [super start];
31 } 56 }
32 57
58 - (void)stop {
59 [self.browser->dispatcher() stopDispatchingToTarget:self];
60 [super stop];
61 }
62
63 #pragma mark - ContextMenuCommands
64
65 - (void)hideContextMenu:(ContextMenuContext*)context {
66 DCHECK_EQ(self.context, context);
67 [self stop];
68 }
69
33 @end 70 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698