| 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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 maxY = [self layoutTabStripAtMaxY:maxY | 199 maxY = [self layoutTabStripAtMaxY:maxY |
| 200 width:width | 200 width:width |
| 201 fullscreen:[self isFullscreen]]; | 201 fullscreen:[self isFullscreen]]; |
| 202 } | 202 } |
| 203 | 203 |
| 204 // Sanity-check |maxY|. | 204 // Sanity-check |maxY|. |
| 205 DCHECK_GE(maxY, minY); | 205 DCHECK_GE(maxY, minY); |
| 206 DCHECK_LE(maxY, NSMaxY(contentBounds) + yOffset); | 206 DCHECK_LE(maxY, NSMaxY(contentBounds) + yOffset); |
| 207 | 207 |
| 208 // Place the toolbar at the top of the reserved area. | 208 // Place the toolbar at the top of the reserved area. |
| 209 CGFloat toolbarTopY = maxY; | |
| 210 maxY = [self layoutToolbarAtMinX:minX maxY:maxY width:width]; | 209 maxY = [self layoutToolbarAtMinX:minX maxY:maxY width:width]; |
| 210 CGFloat toolbarBottomY = maxY; |
| 211 | 211 |
| 212 // If we're not displaying the bookmark bar below the infobar, then it goes | 212 // If we're not displaying the bookmark bar below the infobar, then it goes |
| 213 // immediately below the toolbar. | 213 // immediately below the toolbar. |
| 214 BOOL placeBookmarkBarBelowInfoBar = [self placeBookmarkBarBelowInfoBar]; | 214 BOOL placeBookmarkBarBelowInfoBar = [self placeBookmarkBarBelowInfoBar]; |
| 215 if (!placeBookmarkBarBelowInfoBar) | 215 if (!placeBookmarkBarBelowInfoBar) |
| 216 maxY = [self layoutBookmarkBarAtMinX:minX maxY:maxY width:width]; | 216 maxY = [self layoutBookmarkBarAtMinX:minX maxY:maxY width:width]; |
| 217 | 217 |
| 218 // The floating bar backing view doesn't actually add any height. | 218 // The floating bar backing view doesn't actually add any height. |
| 219 NSRect floatingBarBackingRect = | 219 NSRect floatingBarBackingRect = |
| 220 NSMakeRect(minX, maxY, width, floatingBarHeight); | 220 NSMakeRect(minX, maxY, width, floatingBarHeight); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 244 maxY = [self layoutBookmarkBarAtMinX:minX maxY:maxY width:width]; | 244 maxY = [self layoutBookmarkBarAtMinX:minX maxY:maxY width:width]; |
| 245 | 245 |
| 246 // In presentation mode the content area takes up all the remaining space | 246 // In presentation mode the content area takes up all the remaining space |
| 247 // (from the bottom of the infobar down). In normal mode the content area | 247 // (from the bottom of the infobar down). In normal mode the content area |
| 248 // takes up the space between the bottom of the toolbar down. | 248 // takes up the space between the bottom of the toolbar down. |
| 249 CGFloat contentAreaTop = 0; | 249 CGFloat contentAreaTop = 0; |
| 250 if (inPresentationMode) { | 250 if (inPresentationMode) { |
| 251 toolbarToWebContentsOffset_ = 0; | 251 toolbarToWebContentsOffset_ = 0; |
| 252 contentAreaTop = maxY; | 252 contentAreaTop = maxY; |
| 253 } else { | 253 } else { |
| 254 CGFloat minToolbarHeight = 0; | 254 toolbarToWebContentsOffset_ = toolbarBottomY - maxY; |
| 255 if ([self hasToolbar]) { | 255 contentAreaTop = toolbarBottomY; |
| 256 minToolbarHeight = [toolbarController_ | |
| 257 desiredHeightForCompression:bookmarks::kBookmarkBarOverlap]; | |
| 258 } | |
| 259 contentAreaTop = toolbarTopY - minToolbarHeight; | |
| 260 toolbarToWebContentsOffset_ = contentAreaTop - maxY; | |
| 261 } | 256 } |
| 262 [self updateContentOffsets]; | 257 [self updateContentOffsets]; |
| 263 | 258 |
| 264 NSRect contentAreaRect = NSMakeRect(minX, minY, width, contentAreaTop - minY); | 259 NSRect contentAreaRect = NSMakeRect(minX, minY, width, contentAreaTop - minY); |
| 265 [self layoutTabContentArea:contentAreaRect]; | 260 [self layoutTabContentArea:contentAreaRect]; |
| 266 | 261 |
| 267 // Normally, we don't need to tell the toolbar whether or not to show the | 262 // Normally, we don't need to tell the toolbar whether or not to show the |
| 268 // divider, but things break down during animation. | 263 // divider, but things break down during animation. |
| 269 [toolbarController_ setDividerOpacity:[self toolbarDividerOpacity]]; | 264 [toolbarController_ setDividerOpacity:[self toolbarDividerOpacity]]; |
| 270 } | 265 } |
| (...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 840 - (void)disableBarVisibilityUpdates { | 835 - (void)disableBarVisibilityUpdates { |
| 841 // Early escape if there's nothing to do. | 836 // Early escape if there's nothing to do. |
| 842 if (!barVisibilityUpdatesEnabled_) | 837 if (!barVisibilityUpdatesEnabled_) |
| 843 return; | 838 return; |
| 844 | 839 |
| 845 barVisibilityUpdatesEnabled_ = NO; | 840 barVisibilityUpdatesEnabled_ = NO; |
| 846 [presentationModeController_ cancelAnimationAndTimers]; | 841 [presentationModeController_ cancelAnimationAndTimers]; |
| 847 } | 842 } |
| 848 | 843 |
| 849 - (CGFloat)toolbarDividerOpacity { | 844 - (CGFloat)toolbarDividerOpacity { |
| 845 if ([self currentInstantUIState] != browser_window_controller::kInstantUINone) |
| 846 return 1; |
| 850 return [bookmarkBarController_ toolbarDividerOpacity]; | 847 return [bookmarkBarController_ toolbarDividerOpacity]; |
| 851 } | 848 } |
| 852 | 849 |
| 853 - (browser_window_controller::InstantUIState)currentInstantUIState { | 850 - (browser_window_controller::InstantUIState)currentInstantUIState { |
| 854 if (!browser_->search_model()->mode().is_search_suggestions()) | 851 if (!browser_->search_model()->mode().is_search_suggestions()) |
| 855 return browser_window_controller::kInstantUINone; | 852 return browser_window_controller::kInstantUINone; |
| 856 | 853 |
| 857 // If the search suggestions are already being displayed in the overlay | 854 // If the search suggestions are already being displayed in the overlay |
| 858 // contents then return kInstantUIOverlay. | 855 // contents then return kInstantUIOverlay. |
| 859 if ([overlayableContentsController_ isShowingOverlay]) | 856 if ([overlayableContentsController_ isShowingOverlay]) |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 951 relativeTo:[bookmarkBarController_ view]]; | 948 relativeTo:[bookmarkBarController_ view]]; |
| 952 } else { | 949 } else { |
| 953 [contentView cr_ensureSubview:floatingBarBackingView_ | 950 [contentView cr_ensureSubview:floatingBarBackingView_ |
| 954 isPositioned:NSWindowBelow | 951 isPositioned:NSWindowBelow |
| 955 relativeTo:[bookmarkBarController_ view]]; | 952 relativeTo:[bookmarkBarController_ view]]; |
| 956 } | 953 } |
| 957 } | 954 } |
| 958 } | 955 } |
| 959 | 956 |
| 960 @end // @implementation BrowserWindowController(Private) | 957 @end // @implementation BrowserWindowController(Private) |
| OLD | NEW |