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

Side by Side Diff: ios/chrome/browser/ui/toolbar/toolbar_view_controller.mm

Issue 2592983003: [Clean Skeleton] Migrate code to clean/ (Closed)
Patch Set: Rebased Created 3 years, 11 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
(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/toolbar/toolbar_view_controller.h"
10
11 #import "ios/chrome/browser/ui/actions/tab_grid_actions.h"
12 #import "ios/chrome/browser/ui/actions/tools_menu_actions.h"
13 #import "ios/chrome/browser/ui/commands/toolbar_commands.h"
14
15 #if !defined(__has_feature) || !__has_feature(objc_arc)
16 #error "This file requires ARC support."
17 #endif
18
19 @interface ToolbarViewController ()<ToolsMenuActions>
20 @property(nonatomic, weak) UITextField* omnibox;
21 @property(nonatomic, weak) UIButton* toolsMenu;
22 @end
23
24 @implementation ToolbarViewController
25 @synthesize toolbarCommandHandler = _toolbarCommandHandler;
26 @synthesize omnibox = _omnibox;
27 @synthesize toolsMenu = _toolsMenu;
28
29 - (void)viewDidLoad {
30 self.view.backgroundColor = [UIColor lightGrayColor];
31
32 // Tab switcher button.
33 UIButton* tabSwitcher = [UIButton buttonWithType:UIButtonTypeSystem];
34 tabSwitcher.translatesAutoresizingMaskIntoConstraints = NO;
35 [tabSwitcher setTitle:@"⊞" forState:UIControlStateNormal];
36 tabSwitcher.titleLabel.font = [UIFont systemFontOfSize:24.0];
37 [tabSwitcher addTarget:nil
38 action:@selector(showTabGrid:)
39 forControlEvents:UIControlEventTouchUpInside];
40
41 // Placeholder omnibox.
42 UITextField* omnibox = [[UITextField alloc] initWithFrame:CGRectZero];
43 omnibox.translatesAutoresizingMaskIntoConstraints = NO;
44 omnibox.backgroundColor = [UIColor whiteColor];
45 omnibox.enabled = NO;
46 self.omnibox = omnibox;
47
48 // Tools menu button.
49 UIButton* toolsMenu = [UIButton buttonWithType:UIButtonTypeSystem];
50 toolsMenu.translatesAutoresizingMaskIntoConstraints = NO;
51 [toolsMenu setTitle:@"⋮" forState:UIControlStateNormal];
52 toolsMenu.titleLabel.font = [UIFont systemFontOfSize:24.0];
53 [toolsMenu addTarget:nil
54 action:@selector(showToolsMenu:)
55 forControlEvents:UIControlEventTouchUpInside];
56 self.toolsMenu = toolsMenu;
57
58 // Stack view to contain toolbar items.
59 UIStackView* toolbarItems = [[UIStackView alloc]
60 initWithArrangedSubviews:@[ tabSwitcher, omnibox, toolsMenu ]];
61 toolbarItems.translatesAutoresizingMaskIntoConstraints = NO;
62 toolbarItems.spacing = 16.0;
63 toolbarItems.distribution = UIStackViewDistributionFillProportionally;
64 [self.view addSubview:toolbarItems];
65 [NSLayoutConstraint activateConstraints:@[
66 [toolbarItems.leadingAnchor
67 constraintEqualToAnchor:self.view.layoutMarginsGuide.leadingAnchor],
68 [toolbarItems.trailingAnchor
69 constraintEqualToAnchor:self.view.layoutMarginsGuide.trailingAnchor],
70 [toolbarItems.bottomAnchor
71 constraintEqualToAnchor:self.view.layoutMarginsGuide.bottomAnchor],
72 ]];
73 }
74
75 #pragma mark - Public API
76
77 - (void)setCurrentPageText:(NSString*)text {
78 self.omnibox.text = text;
79 }
80
81 #pragma mark - ZoomTransitionDelegate
82
83 - (CGRect)rectForZoomWithKey:(NSObject*)key inView:(UIView*)view {
84 return [view convertRect:self.toolsMenu.bounds fromView:self.toolsMenu];
85 }
86
87 #pragma mark - ToolsMenuActions
88
89 - (void)showToolsMenu:(id)sender {
90 [self.toolbarCommandHandler showToolsMenu];
91 }
92
93 - (void)closeToolsMenu:(id)sender {
94 [self.toolbarCommandHandler closeToolsMenu];
95 }
96
97 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/toolbar/toolbar_view_controller.h ('k') | ios/chrome/browser/ui/tools/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698