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

Unified Diff: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm

Issue 2361153002: cocoa browser: remove non-material toolbar support (Closed)
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
diff --git a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
index a8851d3e0b815ac94ffbbf0f206f3dbafa9bb665..32e28585cba50df16b5ff4eb1c8957a53e207730 100644
--- a/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
+++ b/chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm
@@ -230,18 +230,10 @@ @implementation ToolbarController
@synthesize browser = browser_;
+ (CGFloat)locationBarHeight {
- if (!ui::MaterialDesignController::IsModeMaterial()) {
- return 29;
- }
-
return kMaterialDesignLocationBarHeight;
}
+ (CGFloat)appMenuLeftPadding {
- if (!ui::MaterialDesignController::IsModeMaterial()) {
- return 3;
- }
-
return kMaterialDesignElementPadding;
}
@@ -302,141 +294,89 @@ - (void)viewDidLoad {
}
// Make Material Design layout adjustments to the NIB items.
- bool isModeMaterial = ui::MaterialDesignController::IsModeMaterial();
- if (isModeMaterial) {
- ToolbarView* toolbarView = [self toolbarView];
- NSRect toolbarBounds = [toolbarView bounds];
- NSSize toolbarButtonSize = [ToolbarButton toolbarButtonSize];
-
- // Set the toolbar height.
- NSRect frame = [toolbarView frame];
- frame.size.height = [self baseToolbarHeight];
- [toolbarView setFrame:frame];
-
- NSRect backButtonFrame = [backButton_ frame];
- backButtonFrame.origin.x =
- kMaterialDesignElementPadding + kMaterialDesignButtonInset;
- backButtonFrame.origin.y = NSMaxY(toolbarBounds) -
- kMaterialDesignElementPadding - toolbarButtonSize.height;
- backButtonFrame.size = toolbarButtonSize;
- [backButton_ setFrame:backButtonFrame];
-
- NSRect forwardButtonFrame = [forwardButton_ frame];
- forwardButtonFrame.origin.x =
- NSMaxX(backButtonFrame) + 2 * kMaterialDesignButtonInset;
- forwardButtonFrame.origin.y = backButtonFrame.origin.y;
- forwardButtonFrame.size = toolbarButtonSize;
- [forwardButton_ setFrame:forwardButtonFrame];
-
- NSRect reloadButtonFrame = [reloadButton_ frame];
- reloadButtonFrame.origin.x =
- NSMaxX(forwardButtonFrame) + 2 * kMaterialDesignButtonInset;
- reloadButtonFrame.origin.y = forwardButtonFrame.origin.y;
- reloadButtonFrame.size = toolbarButtonSize;
- [reloadButton_ setFrame:reloadButtonFrame];
-
- NSRect homeButtonFrame = [homeButton_ frame];
- homeButtonFrame.origin.x =
- NSMaxX(reloadButtonFrame) + 2 * kMaterialDesignButtonInset;
- homeButtonFrame.origin.y = reloadButtonFrame.origin.y;
- homeButtonFrame.size = toolbarButtonSize;
- [homeButton_ setFrame:homeButtonFrame];
-
- // Replace the app button from the nib with an AppToolbarButton instance for
- // Material Design.
- AppToolbarButton* newMenuButton =
- [[[AppToolbarButton alloc] initWithFrame:[appMenuButton_ frame]]
- autorelease];
- [newMenuButton setAutoresizingMask:[appMenuButton_ autoresizingMask]];
- [[appMenuButton_ superview] addSubview:newMenuButton];
- [appMenuButton_ removeFromSuperview];
- appMenuButton_ = newMenuButton;
-
- // Adjust the menu button's position.
- NSRect menuButtonFrame = [appMenuButton_ frame];
- CGFloat menuButtonFrameMaxX =
- NSMaxX(toolbarBounds) - [ToolbarController appMenuLeftPadding];
- menuButtonFrame.origin.x =
- menuButtonFrameMaxX - kMaterialDesignButtonInset -
- toolbarButtonSize.width;
- menuButtonFrame.origin.y = homeButtonFrame.origin.y;
- menuButtonFrame.size = toolbarButtonSize;
- [appMenuButton_ setFrame:menuButtonFrame];
-
- // Adjust the size and location on the location bar to take up the
- // space between the reload and menu buttons.
- NSRect locationBarFrame = [locationBar_ frame];
- locationBarFrame.origin.x = NSMaxX(homeButtonFrame) +
- kMaterialDesignButtonInset;
- if (![homeButton_ isHidden]) {
- // Ensure proper spacing between the home button and the location bar.
- locationBarFrame.origin.x += kMaterialDesignElementPadding;
- }
- locationBarFrame.origin.y = NSMaxY(toolbarBounds) -
- kMaterialDesignLocationBarPadding - kMaterialDesignLocationBarHeight;
- locationBarFrame.size.width =
- menuButtonFrame.origin.x -
- locationBarFrame.origin.x;
- locationBarFrame.size.height = kMaterialDesignLocationBarHeight;
- [locationBar_ setFrame:locationBarFrame];
-
- // Correctly position the extension buttons' container view.
- NSRect containerFrame = [browserActionsContainerView_ frame];
- containerFrame.size.width += kMaterialDesignButtonInset;
- containerFrame.origin.y =
- locationBarFrame.origin.y + kMaterialDesignContainerYOffset;
- containerFrame.size.height = toolbarButtonSize.height;
- [browserActionsContainerView_ setFrame:containerFrame];
- } else {
- [[backButton_ cell] setImageID:IDR_BACK
- forButtonState:image_button_cell::kDefaultState];
- [[backButton_ cell] setImageID:IDR_BACK_H
- forButtonState:image_button_cell::kHoverState];
- [[backButton_ cell] setImageID:IDR_BACK_P
- forButtonState:image_button_cell::kPressedState];
- [[backButton_ cell] setImageID:IDR_BACK_D
- forButtonState:image_button_cell::kDisabledState];
-
- [[forwardButton_ cell] setImageID:IDR_FORWARD
- forButtonState:image_button_cell::kDefaultState];
- [[forwardButton_ cell] setImageID:IDR_FORWARD_H
- forButtonState:image_button_cell::kHoverState];
- [[forwardButton_ cell] setImageID:IDR_FORWARD_P
- forButtonState:image_button_cell::kPressedState];
- [[forwardButton_ cell] setImageID:IDR_FORWARD_D
- forButtonState:image_button_cell::kDisabledState];
-
- [[reloadButton_ cell] setImageID:IDR_RELOAD
- forButtonState:image_button_cell::kDefaultState];
- [[reloadButton_ cell] setImageID:IDR_RELOAD_H
- forButtonState:image_button_cell::kHoverState];
- [[reloadButton_ cell] setImageID:IDR_RELOAD_P
- forButtonState:image_button_cell::kPressedState];
-
- [[homeButton_ cell] setImageID:IDR_HOME
- forButtonState:image_button_cell::kDefaultState];
- [[homeButton_ cell] setImageID:IDR_HOME_H
- forButtonState:image_button_cell::kHoverState];
- [[homeButton_ cell] setImageID:IDR_HOME_P
- forButtonState:image_button_cell::kPressedState];
-
- [[appMenuButton_ cell] setImageID:IDR_TOOLS
- forButtonState:image_button_cell::kDefaultState];
- [[appMenuButton_ cell] setImageID:IDR_TOOLS_H
- forButtonState:image_button_cell::kHoverState];
- [[appMenuButton_ cell] setImageID:IDR_TOOLS_P
- forButtonState:image_button_cell::kPressedState];
-
- // Adjust the toolbar height if running on Retina - see the comment in
- // -baseToolbarHeight.
- CGFloat toolbarHeight = [self baseToolbarHeight];
- ToolbarView* toolbarView = [self toolbarView];
- NSRect toolbarFrame = [toolbarView frame];
- if (toolbarFrame.size.height != toolbarHeight) {
- toolbarFrame.size.height = toolbarHeight;
- [toolbarView setFrame:toolbarFrame];
- }
+ ToolbarView* toolbarView = [self toolbarView];
+ NSRect toolbarBounds = [toolbarView bounds];
+ NSSize toolbarButtonSize = [ToolbarButton toolbarButtonSize];
+
+ // Set the toolbar height.
+ NSRect frame = [toolbarView frame];
+ frame.size.height = [self baseToolbarHeight];
+ [toolbarView setFrame:frame];
+
+ NSRect backButtonFrame = [backButton_ frame];
+ backButtonFrame.origin.x =
+ kMaterialDesignElementPadding + kMaterialDesignButtonInset;
+ backButtonFrame.origin.y = NSMaxY(toolbarBounds) -
+ kMaterialDesignElementPadding - toolbarButtonSize.height;
+ backButtonFrame.size = toolbarButtonSize;
+ [backButton_ setFrame:backButtonFrame];
+
+ NSRect forwardButtonFrame = [forwardButton_ frame];
+ forwardButtonFrame.origin.x =
+ NSMaxX(backButtonFrame) + 2 * kMaterialDesignButtonInset;
+ forwardButtonFrame.origin.y = backButtonFrame.origin.y;
+ forwardButtonFrame.size = toolbarButtonSize;
+ [forwardButton_ setFrame:forwardButtonFrame];
+
+ NSRect reloadButtonFrame = [reloadButton_ frame];
+ reloadButtonFrame.origin.x =
+ NSMaxX(forwardButtonFrame) + 2 * kMaterialDesignButtonInset;
+ reloadButtonFrame.origin.y = forwardButtonFrame.origin.y;
+ reloadButtonFrame.size = toolbarButtonSize;
+ [reloadButton_ setFrame:reloadButtonFrame];
+
+ NSRect homeButtonFrame = [homeButton_ frame];
+ homeButtonFrame.origin.x =
+ NSMaxX(reloadButtonFrame) + 2 * kMaterialDesignButtonInset;
+ homeButtonFrame.origin.y = reloadButtonFrame.origin.y;
+ homeButtonFrame.size = toolbarButtonSize;
+ [homeButton_ setFrame:homeButtonFrame];
+
+ // Replace the app button from the nib with an AppToolbarButton instance for
Evan Stade 2016/09/27 19:34:51 can you remove AppToolbarButtonCell now too?
+ // Material Design.
Evan Stade 2016/09/27 19:34:51 nit: remove references to material design (since i
+ AppToolbarButton* newMenuButton =
+ [[[AppToolbarButton alloc] initWithFrame:[appMenuButton_ frame]]
+ autorelease];
+ [newMenuButton setAutoresizingMask:[appMenuButton_ autoresizingMask]];
+ [[appMenuButton_ superview] addSubview:newMenuButton];
+ [appMenuButton_ removeFromSuperview];
+ appMenuButton_ = newMenuButton;
+
+ // Adjust the menu button's position.
+ NSRect menuButtonFrame = [appMenuButton_ frame];
+ CGFloat menuButtonFrameMaxX =
+ NSMaxX(toolbarBounds) - [ToolbarController appMenuLeftPadding];
+ menuButtonFrame.origin.x =
+ menuButtonFrameMaxX - kMaterialDesignButtonInset -
+ toolbarButtonSize.width;
+ menuButtonFrame.origin.y = homeButtonFrame.origin.y;
+ menuButtonFrame.size = toolbarButtonSize;
+ [appMenuButton_ setFrame:menuButtonFrame];
+
+ // Adjust the size and location on the location bar to take up the
+ // space between the reload and menu buttons.
+ NSRect locationBarFrame = [locationBar_ frame];
+ locationBarFrame.origin.x = NSMaxX(homeButtonFrame) +
+ kMaterialDesignButtonInset;
+ if (![homeButton_ isHidden]) {
+ // Ensure proper spacing between the home button and the location bar.
+ locationBarFrame.origin.x += kMaterialDesignElementPadding;
}
+ locationBarFrame.origin.y = NSMaxY(toolbarBounds) -
+ kMaterialDesignLocationBarPadding - kMaterialDesignLocationBarHeight;
+ locationBarFrame.size.width =
+ menuButtonFrame.origin.x -
+ locationBarFrame.origin.x;
+ locationBarFrame.size.height = kMaterialDesignLocationBarHeight;
+ [locationBar_ setFrame:locationBarFrame];
+
+ // Correctly position the extension buttons' container view.
+ NSRect containerFrame = [browserActionsContainerView_ frame];
+ containerFrame.size.width += kMaterialDesignButtonInset;
+ containerFrame.origin.y =
+ locationBarFrame.origin.y + kMaterialDesignContainerYOffset;
+ containerFrame.size.height = toolbarButtonSize.height;
+ [browserActionsContainerView_ setFrame:containerFrame];
notificationBridge_.reset(
new ToolbarControllerInternal::NotificationBridge(self));
@@ -472,10 +412,6 @@ - (void)viewDidLoad {
relativeTo:locationBar_];
}
- if (!isModeMaterial) {
- [locationBar_ setFont:[NSFont systemFontOfSize:[NSFont systemFontSize]]];
- }
-
// Register pref observers for the optional home and page/options buttons
// and then add them to the toolbar based on those prefs.
PrefService* prefs = profile_->GetPrefs();
@@ -507,17 +443,17 @@ - (void)viewDidLoad {
NSTrackingActiveAlways
owner:self
userInfo:nil]);
- NSView* toolbarView = [self view];
- [toolbarView addTrackingArea:trackingArea_.get()];
+ NSView* parentView = [self view];
+ [parentView addTrackingArea:trackingArea_.get()];
// If the user has any Browser Actions installed, the container view for them
// may have to be resized depending on the width of the toolbar frame.
- [toolbarView setPostsFrameChangedNotifications:YES];
+ [parentView setPostsFrameChangedNotifications:YES];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(toolbarFrameChanged)
name:NSViewFrameDidChangeNotification
- object:toolbarView];
+ object:parentView];
// Set ViewIDs for toolbar elements which don't have their dedicated class.
// ViewIDs of |toolbarView|, |reloadButton_|, |locationBar_| and
@@ -800,12 +736,8 @@ - (void)showOptionalHomeButton {
// since the frame edges of each button are right on top of each other. When
// hiding the button, reverse the direction of the movement (to the left).
CGFloat moveX = [homeButton_ frame].size.width;
- if (!ui::MaterialDesignController::IsModeMaterial()) {
- moveX -= 1.0;
- } else {
- // Ensure proper spacing between the home button and the location bar.
- moveX += kMaterialDesignElementPadding;
- }
+ // Ensure proper spacing between the home button and the location bar.
+ moveX += kMaterialDesignElementPadding;
if (hide)
moveX *= -1; // Reverse the direction of the move.
@@ -829,12 +761,6 @@ - (void)installAppMenu {
- (void)updateAppMenuButtonSeverity:(AppMenuIconPainter::Severity)severity
iconType:(AppMenuIconController::IconType)iconType
animate:(BOOL)animate {
- if (!ui::MaterialDesignController::IsModeMaterial()) {
- AppToolbarButtonCell* cell =
- base::mac::ObjCCastStrict<AppToolbarButtonCell>([appMenuButton_ cell]);
- [cell setSeverity:severity shouldAnimate:animate];
- return;
- }
AppToolbarButton* appMenuButton =
base::mac::ObjCCastStrict<AppToolbarButton>(appMenuButton_);
[appMenuButton setSeverity:severity iconType:iconType shouldAnimate:animate];
@@ -927,9 +853,7 @@ - (void)pinLocationBarToLeftOfBrowserActionsContainerAndAnimate:(BOOL)animate {
locationBarXPos;
// Equalize the distance between the location bar and the first extension
// button, and the distance between the location bar and home/reload button.
- if (ui::MaterialDesignController::IsModeMaterial()) {
- leftDistance -= kMaterialDesignButtonInset;
- }
+ leftDistance -= kMaterialDesignButtonInset;
}
if (leftDistance != 0.0)
[self adjustLocationSizeBy:leftDistance animate:animate];
@@ -960,20 +884,8 @@ - (void)toolbarFrameChanged {
// it afterwards.
[browserActionsContainerView_ stopAnimation];
NSRect containerFrame = [browserActionsContainerView_ frame];
- if (!ui::MaterialDesignController::IsModeMaterial()) {
- CGFloat elementTopPadding =
- kMaterialDesignElementPadding + kMaterialDesignButtonInset;
- // Pre-Material Design, this value is calculated from the values in
- // Toolbar.xib: the height of the toolbar (35) minus the height of the
- // child elements (29) minus the y-origin of the elements (4).
- elementTopPadding = 2;
- containerFrame.origin.y =
- NSHeight([[self view] frame]) - NSHeight(containerFrame) -
- elementTopPadding;
- } else {
- containerFrame.origin.y =
- [locationBar_ frame].origin.y + kMaterialDesignContainerYOffset;
- }
+ containerFrame.origin.y =
+ [locationBar_ frame].origin.y + kMaterialDesignContainerYOffset;
[browserActionsContainerView_ setFrame:containerFrame];
[self pinLocationBarToLeftOfBrowserActionsContainerAndAnimate:NO];
}
@@ -1078,26 +990,8 @@ - (NSPoint)translateBubblePoint {
- (CGFloat)baseToolbarHeight {
// Height of the toolbar in pixels when the bookmark bar is closed.
- const bool kIsModeMaterial = ui::MaterialDesignController::IsModeMaterial();
- const CGFloat kBaseToolbarHeightNormal = kIsModeMaterial ? 37 : 35;
-
- // Not all lines are drawn at 2x normal height when running on Retina, which
- // causes the toolbar controls to be visually 1pt too high within the toolbar
- // area. It's not possible to adjust the control y-positions by 0.5pt and have
- // them appear 0.5pt lower (they are still drawn at their original locations),
- // so instead shave off 1pt from the bottom of the toolbar. Note that there's
- // an offsetting change in -[BookmarkBarController preferredHeight] to
- // maintain the proper spacing between bookmark icons and toolbar items. See
- // https://crbug.com/326245 .
- const CGFloat kLineWidth = [[self view] cr_lineWidth];
- const BOOL kIsRetina = (kLineWidth < 1);
- BOOL reduceHeight = NO;
-
- // Only adjust the height if Retina and not Material Design.
- reduceHeight = kIsRetina && !kIsModeMaterial;
-
- return reduceHeight ? kBaseToolbarHeightNormal - 1
- : kBaseToolbarHeightNormal;
+ const CGFloat kBaseToolbarHeightNormal = 37;
+ return kBaseToolbarHeightNormal;
}
- (CGFloat)desiredHeightForCompression:(CGFloat)compressByHeight {
« no previous file with comments | « chrome/browser/ui/cocoa/toolbar/toolbar_button_cocoa.mm ('k') | chrome/browser/ui/cocoa/toolbar/toolbar_view_cocoa.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698