| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/ui/cocoa/browser_window_controller_private.h" | 5 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #import "base/memory/scoped_nsobject.h" | 10 #import "base/memory/scoped_nsobject.h" |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 buttonHeight)]; | 345 buttonHeight)]; |
| 346 | 346 |
| 347 // Actually place the badge *above* |maxY|, by +2 to miss the divider. | 347 // Actually place the badge *above* |maxY|, by +2 to miss the divider. |
| 348 CGFloat badgeXOffset = -kAvatarRightOffset; | 348 CGFloat badgeXOffset = -kAvatarRightOffset; |
| 349 CGFloat badgeYOffset = 2 * [[avatarButton superview] cr_lineWidth]; | 349 CGFloat badgeYOffset = 2 * [[avatarButton superview] cr_lineWidth]; |
| 350 NSPoint origin = | 350 NSPoint origin = |
| 351 NSMakePoint(width - NSWidth([avatarButton frame]) + badgeXOffset, | 351 NSMakePoint(width - NSWidth([avatarButton frame]) + badgeXOffset, |
| 352 maxY + badgeYOffset); | 352 maxY + badgeYOffset); |
| 353 [avatarButton setFrameOrigin:origin]; | 353 [avatarButton setFrameOrigin:origin]; |
| 354 [avatarButton setHidden:NO]; // Make sure it's shown. | 354 [avatarButton setHidden:NO]; // Make sure it's shown. |
| 355 |
| 356 NSTextField* avatarLabel = [avatarButtonController_ labelView]; |
| 357 if (avatarLabel) { |
| 358 CGFloat labelHeight = NSHeight([avatarLabel frame]); |
| 359 origin = |
| 360 NSMakePoint(origin.x - NSWidth([avatarLabel frame]) + badgeXOffset, |
| 361 maxY + badgeYOffset + (buttonHeight - labelHeight) / 2); |
| 362 [avatarLabel setFrameOrigin:origin]; |
| 363 [avatarLabel setHidden:NO]; |
| 364 } |
| 355 } | 365 } |
| 356 | 366 |
| 357 // Calculate the right indentation. The default indentation built into the | 367 // Calculate the right indentation. The default indentation built into the |
| 358 // tabstrip leaves enough room for the fullscreen button or presentation mode | 368 // tabstrip leaves enough room for the fullscreen button or presentation mode |
| 359 // toggle button on Lion. On non-Lion systems, the right indent needs to be | 369 // toggle button on Lion. On non-Lion systems, the right indent needs to be |
| 360 // adjusted to make room for the new tab button when an avatar is present. | 370 // adjusted to make room for the new tab button when an avatar is present. |
| 361 CGFloat rightIndent = 0; | 371 CGFloat rightIndent = 0; |
| 362 if (base::mac::IsOSLionOrLater()) { | 372 if (base::mac::IsOSLionOrLater()) { |
| 363 FramedBrowserWindow* window = | 373 FramedBrowserWindow* window = |
| 364 static_cast<FramedBrowserWindow*>([self window]); | 374 static_cast<FramedBrowserWindow*>([self window]); |
| 365 DCHECK([window isKindOfClass:[FramedBrowserWindow class]]); | 375 DCHECK([window isKindOfClass:[FramedBrowserWindow class]]); |
| 366 rightIndent += -[window fullScreenButtonOriginAdjustment].x; | 376 rightIndent += -[window fullScreenButtonOriginAdjustment].x; |
| 367 } else if ([self shouldShowAvatar]) { | 377 } else if ([self shouldShowAvatar]) { |
| 368 rightIndent += kAvatarTabStripShrink; | 378 rightIndent += kAvatarTabStripShrink; |
| 379 if ([avatarButtonController_ labelView]) { |
| 380 rightIndent += NSWidth([[avatarButtonController_ labelView] frame]) + |
| 381 kAvatarRightOffset; |
| 382 } |
| 369 } | 383 } |
| 370 [tabStripController_ setRightIndentForControls:rightIndent]; | 384 [tabStripController_ setRightIndentForControls:rightIndent]; |
| 371 | 385 |
| 372 // Go ahead and layout the tabs. | 386 // Go ahead and layout the tabs. |
| 373 [tabStripController_ layoutTabsWithoutAnimation]; | 387 [tabStripController_ layoutTabsWithoutAnimation]; |
| 374 | 388 |
| 375 return maxY; | 389 return maxY; |
| 376 } | 390 } |
| 377 | 391 |
| 378 - (CGFloat)layoutToolbarAtMinX:(CGFloat)minX | 392 - (CGFloat)layoutToolbarAtMinX:(CGFloat)minX |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 // or view manipulation Cocoa calls. Stack added to suppressions_mac.txt. | 594 // or view manipulation Cocoa calls. Stack added to suppressions_mac.txt. |
| 581 [contentView setAutoresizesSubviews:YES]; | 595 [contentView setAutoresizesSubviews:YES]; |
| 582 [destWindow setContentView:contentView]; | 596 [destWindow setContentView:contentView]; |
| 583 | 597 |
| 584 // Move the incognito badge if present. | 598 // Move the incognito badge if present. |
| 585 if ([self shouldShowAvatar]) { | 599 if ([self shouldShowAvatar]) { |
| 586 [[avatarButtonController_ view] removeFromSuperview]; | 600 [[avatarButtonController_ view] removeFromSuperview]; |
| 587 [[avatarButtonController_ view] setHidden:YES]; // Will be shown in layout. | 601 [[avatarButtonController_ view] setHidden:YES]; // Will be shown in layout. |
| 588 [[[destWindow contentView] superview] addSubview: | 602 [[[destWindow contentView] superview] addSubview: |
| 589 [avatarButtonController_ view]]; | 603 [avatarButtonController_ view]]; |
| 604 if ([avatarButtonController_ labelView]) { |
| 605 [[avatarButtonController_ labelView] removeFromSuperview]; |
| 606 [[avatarButtonController_ labelView] setHidden:YES]; |
| 607 [[[destWindow contentView] superview] |
| 608 addSubview:[avatarButtonController_ labelView]]; |
| 609 } |
| 590 } | 610 } |
| 591 | 611 |
| 592 // Add the tab strip after setting the content view and moving the incognito | 612 // Add the tab strip after setting the content view and moving the incognito |
| 593 // badge (if any), so that the tab strip will be on top (in the z-order). | 613 // badge (if any), so that the tab strip will be on top (in the z-order). |
| 594 if ([self hasTabStrip]) | 614 if ([self hasTabStrip]) |
| 595 [[[destWindow contentView] superview] addSubview:tabStripView]; | 615 [[[destWindow contentView] superview] addSubview:tabStripView]; |
| 596 | 616 |
| 597 [sourceWindow setWindowController:nil]; | 617 [sourceWindow setWindowController:nil]; |
| 598 [self setWindow:destWindow]; | 618 [self setWindow:destWindow]; |
| 599 [destWindow setWindowController:self]; | 619 [destWindow setWindowController:self]; |
| (...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1007 relativeTo:[bookmarkBarController_ view]]; | 1027 relativeTo:[bookmarkBarController_ view]]; |
| 1008 } else { | 1028 } else { |
| 1009 [contentView cr_ensureSubview:floatingBarBackingView_ | 1029 [contentView cr_ensureSubview:floatingBarBackingView_ |
| 1010 isPositioned:NSWindowBelow | 1030 isPositioned:NSWindowBelow |
| 1011 relativeTo:[bookmarkBarController_ view]]; | 1031 relativeTo:[bookmarkBarController_ view]]; |
| 1012 } | 1032 } |
| 1013 } | 1033 } |
| 1014 } | 1034 } |
| 1015 | 1035 |
| 1016 @end // @implementation BrowserWindowController(Private) | 1036 @end // @implementation BrowserWindowController(Private) |
| OLD | NEW |