OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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" |
11 #include "chrome/browser/browser_process.h" | 11 #include "chrome/browser/browser_process.h" |
12 #include "chrome/browser/prefs/pref_service.h" | 12 #include "chrome/browser/prefs/pref_service.h" |
13 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 13 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
14 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
15 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" | 15 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" |
16 #include "chrome/browser/ui/browser_list.h" | 16 #include "chrome/browser/ui/browser_list.h" |
17 #import "chrome/browser/ui/cocoa/browser/avatar_button.h" | 17 #import "chrome/browser/ui/cocoa/browser/avatar_button_controller.h" |
18 #import "chrome/browser/ui/cocoa/fast_resize_view.h" | 18 #import "chrome/browser/ui/cocoa/fast_resize_view.h" |
19 #import "chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.h" | 19 #import "chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.h" |
20 #import "chrome/browser/ui/cocoa/floating_bar_backing_view.h" | 20 #import "chrome/browser/ui/cocoa/floating_bar_backing_view.h" |
21 #import "chrome/browser/ui/cocoa/focus_tracker.h" | 21 #import "chrome/browser/ui/cocoa/focus_tracker.h" |
22 #import "chrome/browser/ui/cocoa/framed_browser_window.h" | 22 #import "chrome/browser/ui/cocoa/framed_browser_window.h" |
23 #import "chrome/browser/ui/cocoa/fullscreen_window.h" | 23 #import "chrome/browser/ui/cocoa/fullscreen_window.h" |
24 #import "chrome/browser/ui/cocoa/infobars/infobar_container_controller.h" | 24 #import "chrome/browser/ui/cocoa/infobars/infobar_container_controller.h" |
25 #import "chrome/browser/ui/cocoa/presentation_mode_controller.h" | 25 #import "chrome/browser/ui/cocoa/presentation_mode_controller.h" |
26 #import "chrome/browser/ui/cocoa/status_bubble_mac.h" | 26 #import "chrome/browser/ui/cocoa/status_bubble_mac.h" |
27 #import "chrome/browser/ui/cocoa/tab_contents/previewable_contents_controller.h" | 27 #import "chrome/browser/ui/cocoa/tab_contents/previewable_contents_controller.h" |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 | 348 |
349 CGFloat rightIndent = 0; | 349 CGFloat rightIndent = 0; |
350 if ([self shouldShowAvatar]) | 350 if ([self shouldShowAvatar]) |
351 rightIndent += (kAvatarTabStripShrink + possibleExtraShiftForLion); | 351 rightIndent += (kAvatarTabStripShrink + possibleExtraShiftForLion); |
352 [tabStripController_ setRightIndentForControls:rightIndent]; | 352 [tabStripController_ setRightIndentForControls:rightIndent]; |
353 | 353 |
354 // Go ahead and layout the tabs. | 354 // Go ahead and layout the tabs. |
355 [tabStripController_ layoutTabsWithoutAnimation]; | 355 [tabStripController_ layoutTabsWithoutAnimation]; |
356 | 356 |
357 // Now lay out incognito badge together with the tab strip. | 357 // Now lay out incognito badge together with the tab strip. |
358 if (avatarButton_.get()) { | 358 if ([self shouldShowAvatar]) { |
359 [avatarButton_ setFrameSize:NSMakeSize(tabStripHeight, | 359 NSView* avatarButton = [avatarButtonController_ view]; |
360 tabStripHeight - 5.0)]; | 360 [avatarButton setFrameSize:NSMakeSize(tabStripHeight, |
| 361 tabStripHeight - 5.0)]; |
361 | 362 |
362 // Actually place the badge *above* |maxY|, by +2 to miss the divider. On | 363 // Actually place the badge *above* |maxY|, by +2 to miss the divider. On |
363 // Lion or later, shift the badge left to move it away from the fullscreen | 364 // Lion or later, shift the badge left to move it away from the fullscreen |
364 // button. | 365 // button. |
365 CGFloat badgeOffset = kAvatarRightOffset + possibleExtraShiftForLion; | 366 CGFloat badgeOffset = kAvatarRightOffset + possibleExtraShiftForLion; |
366 NSPoint origin = | 367 NSPoint origin = |
367 NSMakePoint(width - NSWidth([avatarButton_ frame]) - badgeOffset, | 368 NSMakePoint(width - NSWidth([avatarButton frame]) - badgeOffset, |
368 maxY + 2); | 369 maxY + 2); |
369 [avatarButton_ setFrameOrigin:origin]; | 370 [avatarButton setFrameOrigin:origin]; |
370 [avatarButton_ setHidden:NO]; // Make sure it's shown. | 371 [avatarButton setHidden:NO]; // Make sure it's shown. |
371 } | 372 } |
372 | 373 |
373 return maxY; | 374 return maxY; |
374 } | 375 } |
375 | 376 |
376 - (CGFloat)layoutToolbarAtMinX:(CGFloat)minX | 377 - (CGFloat)layoutToolbarAtMinX:(CGFloat)minX |
377 maxY:(CGFloat)maxY | 378 maxY:(CGFloat)maxY |
378 width:(CGFloat)width { | 379 width:(CGFloat)width { |
379 NSView* toolbarView = [toolbarController_ view]; | 380 NSView* toolbarView = [toolbarController_ view]; |
380 NSRect toolbarFrame = [toolbarView frame]; | 381 NSRect toolbarFrame = [toolbarView frame]; |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 | 619 |
619 // With this call, valgrind complains that a "Conditional jump or move depends | 620 // With this call, valgrind complains that a "Conditional jump or move depends |
620 // on uninitialised value(s)". The error happens in -[NSThemeFrame | 621 // on uninitialised value(s)". The error happens in -[NSThemeFrame |
621 // drawOverlayRect:]. I'm pretty convinced this is an Apple bug, but there is | 622 // drawOverlayRect:]. I'm pretty convinced this is an Apple bug, but there is |
622 // no visual impact. I have been unable to tickle it away with other window | 623 // no visual impact. I have been unable to tickle it away with other window |
623 // or view manipulation Cocoa calls. Stack added to suppressions_mac.txt. | 624 // or view manipulation Cocoa calls. Stack added to suppressions_mac.txt. |
624 [contentView setAutoresizesSubviews:YES]; | 625 [contentView setAutoresizesSubviews:YES]; |
625 [destWindow setContentView:contentView]; | 626 [destWindow setContentView:contentView]; |
626 | 627 |
627 // Move the incognito badge if present. | 628 // Move the incognito badge if present. |
628 if (avatarButton_.get()) { | 629 if ([self shouldShowAvatar]) { |
629 [avatarButton_ removeFromSuperview]; | 630 [[avatarButtonController_ view] removeFromSuperview]; |
630 [avatarButton_ setHidden:YES]; // Will be shown in layout. | 631 [[avatarButtonController_ view] setHidden:YES]; // Will be shown in layout. |
631 [[[destWindow contentView] superview] addSubview:avatarButton_]; | 632 [[[destWindow contentView] superview] addSubview: |
| 633 [avatarButtonController_ view]]; |
632 } | 634 } |
633 | 635 |
634 // Add the tab strip after setting the content view and moving the incognito | 636 // Add the tab strip after setting the content view and moving the incognito |
635 // badge (if any), so that the tab strip will be on top (in the z-order). | 637 // badge (if any), so that the tab strip will be on top (in the z-order). |
636 if ([self hasTabStrip]) | 638 if ([self hasTabStrip]) |
637 [[[destWindow contentView] superview] addSubview:tabStripView]; | 639 [[[destWindow contentView] superview] addSubview:tabStripView]; |
638 | 640 |
639 [sourceWindow setWindowController:nil]; | 641 [sourceWindow setWindowController:nil]; |
640 [self setWindow:destWindow]; | 642 [self setWindow:destWindow]; |
641 [destWindow setWindowController:self]; | 643 [destWindow setWindowController:self]; |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
885 - (void)disableBarVisibilityUpdates { | 887 - (void)disableBarVisibilityUpdates { |
886 // Early escape if there's nothing to do. | 888 // Early escape if there's nothing to do. |
887 if (!barVisibilityUpdatesEnabled_) | 889 if (!barVisibilityUpdatesEnabled_) |
888 return; | 890 return; |
889 | 891 |
890 barVisibilityUpdatesEnabled_ = NO; | 892 barVisibilityUpdatesEnabled_ = NO; |
891 [presentationModeController_ cancelAnimationAndTimers]; | 893 [presentationModeController_ cancelAnimationAndTimers]; |
892 } | 894 } |
893 | 895 |
894 @end // @implementation BrowserWindowController(Private) | 896 @end // @implementation BrowserWindowController(Private) |
OLD | NEW |