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

Unified Diff: ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.mm

Issue 2587023002: Upstream Chrome on iOS source code [8/11]. (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.mm
diff --git a/ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.mm b/ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.mm
new file mode 100644
index 0000000000000000000000000000000000000000..cc9fceb3df05bb6dfee78d545ee5aa6d57e74c44
--- /dev/null
+++ b/ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.mm
@@ -0,0 +1,74 @@
+// Copyright 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.h"
+
+#include "base/mac/foundation_util.h"
+#include "base/metrics/user_metrics.h"
+#include "base/metrics/user_metrics_action.h"
+#import "ios/chrome/browser/ui/image_util.h"
+#import "ios/chrome/browser/ui/rtl_geometry.h"
+#include "ios/chrome/browser/ui/toolbar/new_tab_button.h"
+#import "ios/chrome/browser/ui/uikit_ui_util.h"
+
+using base::UserMetricsAction;
+
+namespace {
+const CGFloat kNewTabLeadingOffset = 10.0;
+const int kBackgroundViewColor = 0x282C32;
+const CGFloat kBackgroundViewColorAlpha = 0.95;
+}
+
+@implementation StackViewToolbarController {
+ base::scoped_nsobject<UIView> _stackViewToolbar;
+ base::scoped_nsobject<NewTabButton> _openNewTabButton;
+}
+
+- (instancetype)initWithStackViewToolbar {
+ self = [super initWithStyle:ToolbarControllerStyleDarkMode];
+ if (self) {
+ _stackViewToolbar.reset(
+ [[UIView alloc] initWithFrame:[self specificControlsArea]]);
+ [_stackViewToolbar setAutoresizingMask:UIViewAutoresizingFlexibleHeight |
+ UIViewAutoresizingFlexibleWidth];
+
+ _openNewTabButton.reset([[NewTabButton alloc] initWithFrame:CGRectZero]);
+
+ [_openNewTabButton
+ setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin |
+ UIViewAutoresizingFlexibleTrailingMargin()];
+ CGFloat buttonSize = [_stackViewToolbar bounds].size.height;
+ // Set the button's position.
+ LayoutRect newTabButtonLayout = LayoutRectMake(
+ kNewTabLeadingOffset, [_stackViewToolbar bounds].size.width, 0,
+ buttonSize, buttonSize);
+ [_openNewTabButton setFrame:LayoutRectGetRect(newTabButtonLayout)];
+ // Set additional button action.
+ [_openNewTabButton addTarget:self
+ action:@selector(recordUserMetrics:)
+ forControlEvents:UIControlEventTouchUpInside];
+
+ self.shadowView.alpha = 0.0;
+ self.backgroundView.image = nil;
+ self.backgroundView.backgroundColor =
+ UIColorFromRGB(kBackgroundViewColor, kBackgroundViewColorAlpha);
+
+ [_stackViewToolbar addSubview:_openNewTabButton];
+ [self.view addSubview:_stackViewToolbar];
+ }
+ return self;
+}
+
+- (NewTabButton*)openNewTabButton {
+ return _openNewTabButton.get();
+}
+
+- (IBAction)recordUserMetrics:(id)sender {
+ if (sender == _openNewTabButton.get())
+ base::RecordAction(UserMetricsAction("MobileToolbarStackViewNewTab"));
+ else
+ [super recordUserMetrics:sender];
+}
+
+@end
« no previous file with comments | « ios/chrome/browser/ui/stack_view/stack_view_toolbar_controller.h ('k') | ios/chrome/browser/ui/stack_view/title_label.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698