| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/fullscreen/fullscreen_toolbar_controller.h" | 5 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
| 9 #import "chrome/browser/ui/cocoa/browser_window_controller.h" | 9 #import "chrome/browser/ui/cocoa/browser_window_controller.h" |
| 10 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h" | 10 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h" |
| 11 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_control
ler.h" | 11 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_control
ler.h" |
| 12 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h" | 12 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h" |
| 13 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_c
ontroller.h" | 13 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_c
ontroller.h" |
| 14 #import "chrome/browser/ui/cocoa/fullscreen/immersive_fullscreen_controller.h" | 14 #import "chrome/browser/ui/cocoa/fullscreen/immersive_fullscreen_controller.h" |
| 15 #include "chrome/common/chrome_switches.h" | 15 #include "chrome/common/chrome_switches.h" |
| 16 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
| 17 | 17 |
| 18 namespace { | 18 namespace { |
| 19 | 19 |
| 20 // Visibility fractions for the menubar and toolbar. | 20 // Visibility fractions for the menubar and toolbar. |
| 21 const CGFloat kHideFraction = 0.0; | 21 const CGFloat kHideFraction = 0.0; |
| 22 const CGFloat kShowFraction = 1.0; | 22 const CGFloat kShowFraction = 1.0; |
| 23 | 23 |
| 24 // The amount by which the toolbar is offset downwards (to avoid the menu) | |
| 25 // when the toolbar style is TOOLBAR_HIDDEN. (We can't use | |
| 26 // |-[NSMenu menuBarHeight]| since it returns 0 when the menu bar is hidden.) | |
| 27 const CGFloat kToolbarVerticalOffset = -22; | |
| 28 | |
| 29 } // end namespace | 24 } // end namespace |
| 30 | 25 |
| 31 @implementation FullscreenToolbarController | 26 @implementation FullscreenToolbarController |
| 32 | 27 |
| 33 - (id)initWithBrowserController:(BrowserWindowController*)controller { | 28 - (id)initWithBrowserController:(BrowserWindowController*)controller { |
| 34 if ((self = [super init])) { | 29 if ((self = [super init])) { |
| 35 browserController_ = controller; | 30 browserController_ = controller; |
| 36 animationController_.reset(new FullscreenToolbarAnimationController(self)); | 31 animationController_.reset(new FullscreenToolbarAnimationController(self)); |
| 37 visibilityLockController_.reset( | 32 visibilityLockController_.reset( |
| 38 [[FullscreenToolbarVisibilityLockController alloc] | 33 [[FullscreenToolbarVisibilityLockController alloc] |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 | 109 |
| 115 return [menubarTracker_ menubarFraction]; | 110 return [menubarTracker_ menubarFraction]; |
| 116 } | 111 } |
| 117 } | 112 } |
| 118 | 113 |
| 119 - (FullscreenToolbarLayout)computeLayout { | 114 - (FullscreenToolbarLayout)computeLayout { |
| 120 FullscreenToolbarLayout layout; | 115 FullscreenToolbarLayout layout; |
| 121 layout.toolbarStyle = toolbarStyle_; | 116 layout.toolbarStyle = toolbarStyle_; |
| 122 layout.toolbarFraction = [self toolbarFraction]; | 117 layout.toolbarFraction = [self toolbarFraction]; |
| 123 | 118 |
| 119 // Calculate how much the toolbar is offset downwards to avoid the menu. |
| 124 if ([browserController_ isInAppKitFullscreen]) { | 120 if ([browserController_ isInAppKitFullscreen]) { |
| 125 layout.menubarOffset = [menubarTracker_ menubarFraction]; | 121 layout.menubarOffset = [menubarTracker_ menubarFraction]; |
| 126 } else { | 122 } else { |
| 127 layout.menubarOffset = | 123 layout.menubarOffset = |
| 128 [immersiveFullscreenController_ shouldShowMenubar] ? 1 : 0; | 124 [immersiveFullscreenController_ shouldShowMenubar] ? 1 : 0; |
| 129 } | 125 } |
| 130 layout.menubarOffset *= kToolbarVerticalOffset; | 126 layout.menubarOffset *= -[browserController_ menubarHeight]; |
| 131 | 127 |
| 132 return layout; | 128 return layout; |
| 133 } | 129 } |
| 134 | 130 |
| 135 - (BOOL)mustShowFullscreenToolbar { | 131 - (BOOL)mustShowFullscreenToolbar { |
| 136 if (!inFullscreenMode_) | 132 if (!inFullscreenMode_) |
| 137 return NO; | 133 return NO; |
| 138 | 134 |
| 139 if (toolbarStyle_ == FullscreenToolbarStyle::TOOLBAR_PRESENT) | 135 if (toolbarStyle_ == FullscreenToolbarStyle::TOOLBAR_PRESENT) |
| 140 return YES; | 136 return YES; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 } | 201 } |
| 206 | 202 |
| 207 - (void)setToolbarStyle:(FullscreenToolbarStyle)style { | 203 - (void)setToolbarStyle:(FullscreenToolbarStyle)style { |
| 208 toolbarStyle_ = style; | 204 toolbarStyle_ = style; |
| 209 } | 205 } |
| 210 | 206 |
| 211 - (void)setTestFullscreenMode:(BOOL)isInFullscreen { | 207 - (void)setTestFullscreenMode:(BOOL)isInFullscreen { |
| 212 inFullscreenMode_ = isInFullscreen; | 208 inFullscreenMode_ = isInFullscreen; |
| 213 } | 209 } |
| 214 | 210 |
| 215 - (CGFloat)toolbarVerticalOffset { | |
| 216 return kToolbarVerticalOffset; | |
| 217 } | |
| 218 | |
| 219 @end | 211 @end |
| OLD | NEW |