Index: chrome/browser/ui/cocoa/browser_window_controller_private.h |
=================================================================== |
--- chrome/browser/ui/cocoa/browser_window_controller_private.h (revision 95517) |
+++ chrome/browser/ui/cocoa/browser_window_controller_private.h (working copy) |
@@ -21,6 +21,10 @@ |
// tabs are enabled. Replaces the current controller. |
- (void)createTabStripController; |
+// Creates the button used to toggle presentation mode. Must only be called on |
+// Lion or later. Does nothing if the button already exists. |
+- (void)createAndInstallPresentationModeToggleButton; |
+ |
// Saves the window's position in the local state preferences. |
- (void)saveWindowPositionIfNeeded; |
@@ -38,13 +42,19 @@ |
// content area, download shelf (if any). |
- (void)layoutSubviews; |
-// Find the total height of the floating bar (in fullscreen mode). Safe to call |
-// even when not in fullscreen mode. |
+// Find the total height of the floating bar (in presentation mode). Safe to |
+// call even when not in presentation mode. |
- (CGFloat)floatingBarHeight; |
+// Lays out the presentation mode toggle button at the top right corner of the |
+// overlay. Creates the button if needed, and removes it if it is not needed. |
+// This method is safe to call on all OS versions. |
+- (void)layoutPresentationModeToggleAtOverlayMaxX:(CGFloat)maxX |
+ overlayMaxY:(CGFloat)maxY; |
+ |
// Lays out the tab strip at the given maximum y-coordinate, with the given |
-// width, possibly for fullscreen mode; returns the new maximum y (below the tab |
-// strip). This is safe to call even when there is no tab strip. |
+// width, possibly for fullscreen mode; returns the new maximum y (below the |
+// tab strip). This is safe to call even when there is no tab strip. |
- (CGFloat)layoutTabStripAtMaxY:(CGFloat)maxY |
width:(CGFloat)width |
fullscreen:(BOOL)fullscreen; |
@@ -70,10 +80,10 @@ |
width:(CGFloat)width; |
// Lay out the view which draws the background for the floating bar when in |
-// fullscreen mode, with the given frame and fullscreen-mode-status. Should be |
-// called even when not in fullscreen mode to hide the backing view. |
+// presentation mode, with the given frame and presentation-mode-status. Should |
+// be called even when not in presentation mode to hide the backing view. |
- (void)layoutFloatingBarBackingView:(NSRect)frame |
- fullscreen:(BOOL)fullscreen; |
+ presentationMode:(BOOL)presentationMode; |
// Lays out the infobar at the given maximum y-coordinate, with the given width; |
// returns the new maximum y (below the infobar). |
@@ -104,21 +114,57 @@ |
// keep the total height of the two views constant. |
- (void)adjustToolbarAndBookmarkBarForCompression:(CGFloat)compression; |
-// Adjust the UI when entering or leaving fullscreen mode. |
-- (void)adjustUIForFullscreen:(BOOL)fullscreen; |
+// Gets and sets whether to default to presentation mode when entering |
+// fullscreen on Lion or later. On Leopard and Snow Leopard, this preference is |
+// ignored (fullscreen mode always turns presentation mode on). This method is |
+// safe to call on all OS versions. |
+- (BOOL)shouldUsePresentationModeWhenEnteringFullscreen; |
+- (void)setShouldUsePresentationModeWhenEnteringFullscreen:(BOOL)flag; |
+// Whether to show the presentation mode toggle button in the UI. Returns YES |
+// if in fullscreen mode on Lion or later. This method is safe to call on all |
+// OS versions. |
+- (BOOL)shouldShowPresentationModeToggle; |
+ |
+// Moves views between windows in preparation for fullscreen mode on Snow |
+// Leopard or earlier. (Lion and later reuses the original window for |
+// fullscreen mode, so there is no need to move views around.) This method does |
+// not position views; callers must also call |-layoutSubviews|. This method |
+// must not be called on Lion or later. |
+- (void)moveViewsForFullscreenForSnowLeopardOrEarlier:(BOOL)fullscreen |
+ regularWindow:(NSWindow*)regularWindow |
+ fullscreenWindow:(NSWindow*)fullscreenWindow; |
+ |
+// Sets presentation mode, creating the PresentationModeController if needed and |
+// forcing a relayout. If |forceDropdown| is YES, this method will always |
+// initially show the floating bar when entering presentation mode, even if the |
+// floating bar does not have focus. This method is safe to call on all OS |
+// versions. |
+- (void)setPresentationModeInternal:(BOOL)presentationMode |
+ forceDropdown:(BOOL)forceDropdown; |
+ |
+// Called on Snow Leopard or earlier to enter or exit fullscreen. These methods |
+// are internal implementations of |-setFullscreen:|. These methods must not be |
+// called on Lion or later. |
+- (void)enterFullscreenForSnowLeopardOrEarlier; |
+- (void)exitFullscreenForSnowLeopardOrEarlier; |
+ |
+// Register or deregister for content view resize notifications. These |
+// notifications are used while transitioning to fullscreen mode in Lion or |
+// later. This method is safe to call on all OS versions. |
+- (void)registerForContentViewResizeNotifications; |
+- (void)deregisterForContentViewResizeNotifications; |
+ |
+// Adjust the UI when entering or leaving presentation mode. This method is |
+// safe to call on all OS versions. |
+- (void)adjustUIForPresentationMode:(BOOL)fullscreen; |
+ |
// Allows/prevents bar visibility locks and releases from updating the visual |
// state. Enabling makes changes instantaneously; disabling cancels any |
// timers/animation. |
- (void)enableBarVisibilityUpdates; |
- (void)disableBarVisibilityUpdates; |
-// For versions of Mac OS that provide an "enter fullscreen" button, make one |
-// appear (in a rather hacky manner). http://crbug.com/74065 : When switching |
-// the fullscreen implementation to the new API, revisit how much of this |
-// hacky code is necessary. |
-- (void)setUpOSFullScreenButton; |
- |
@end // @interface BrowserWindowController(Private) |
#endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_ |