Chromium Code Reviews| Index: chrome/browser/ui/cocoa/browser_window_controller.h |
| =================================================================== |
| --- chrome/browser/ui/cocoa/browser_window_controller.h (revision 95287) |
| +++ chrome/browser/ui/cocoa/browser_window_controller.h (working copy) |
| @@ -35,10 +35,11 @@ |
| @class DevToolsController; |
| @class DownloadShelfController; |
| @class FindBarCocoaController; |
| -@class FullscreenController; |
| +@class FullscreenWindow; |
| @class GTMWindowSheetController; |
| @class InfoBarContainerController; |
| class LocationBarViewMac; |
| +@class PresentationModeController; |
| @class PreviewableContentsController; |
| @class SidebarController; |
| class StatusBubbleMac; |
| @@ -71,7 +72,7 @@ |
| scoped_nsobject<DevToolsController> devToolsController_; |
| scoped_nsobject<SidebarController> sidebarController_; |
| scoped_nsobject<PreviewableContentsController> previewableContentsController_; |
| - scoped_nsobject<FullscreenController> fullscreenController_; |
| + scoped_nsobject<PresentationModeController> presentationModeController_; |
| // Strong. StatusBubble is a special case of a strong reference that |
| // we don't wrap in a scoped_ptr because it is acting the same |
| @@ -111,21 +112,39 @@ |
| // fullscreen window. |
| scoped_nsobject<AvatarButton> avatarButton_; |
| + // The view that shows the presentation mode toggle when in Lion fullscreen |
| + // mode. Nil if not in fullscreen mode or not on Lion. |
| + scoped_nsobject<NSButton> presentationModeToggleButton_; |
| + |
| // Lazily created view which draws the background for the floating set of bars |
| - // in fullscreen mode (for window types having a floating bar; it remains nil |
| - // for those which don't). |
| + // in presentation mode (for window types having a floating bar; it remains |
| + // nil for those which don't). |
| scoped_nsobject<NSView> floatingBarBackingView_; |
| // Tracks whether the floating bar is above or below the bookmark bar, in |
| // terms of z-order. |
| BOOL floatingBarAboveBookmarkBar_; |
| - // The proportion of the floating bar which is shown (in fullscreen mode). |
| + // The borderless window used in fullscreen mode. Lion reuses the original |
| + // window in fullscreen mode, so this is always nil on Lion. |
| + scoped_nsobject<NSWindow> fullscreenWindow_; |
|
Robert Sesek
2011/08/04 14:43:41
Make this a FullscreenWindow to appease the Clang
rohitrao (ping after 24h)
2011/08/04 18:18:26
The clang bot was unhappy when this was a Fullscre
|
| + |
| + // Tracks whether presentation mode was entered from fullscreen mode or |
| + // directly from normal windowed mode. Used to determine what to do when |
| + // exiting presentation mode. |
| + BOOL enteredPresentationModeFromFullscreen_; |
| + |
| + // The size of the original (non-fullscreen) window. This is saved just |
| + // before entering fullscreen mode and is only valid when |-isFullscreen| |
| + // returns YES. |
| + NSRect savedRegularWindowFrame_; |
| + |
| + // The proportion of the floating bar which is shown (in presentation mode). |
| CGFloat floatingBarShownFraction_; |
| // Various UI elements/events may want to ensure that the floating bar is |
| - // visible (in fullscreen mode), e.g., because of where the mouse is or where |
| - // keyboard focus is. Whenever an object requires bar visibility, it has |
| + // visible (in presentation mode), e.g., because of where the mouse is or |
| + // where keyboard focus is. Whenever an object requires bar visibility, it has |
| // itself added to |barVisibilityLocks_|. When it no longer requires bar |
| // visibility, it has itself removed. |
| scoped_nsobject<NSMutableSet> barVisibilityLocks_; |
| @@ -299,7 +318,8 @@ |
| // Methods having to do with the window type (normal/popup/app, and whether the |
| -// window has various features; fullscreen methods are separate). |
| +// window has various features; fullscreen and presentation mode methods are |
| +// separate). |
| @interface BrowserWindowController(WindowType) |
| // Determines whether this controller's window supports a given feature (i.e., |
| @@ -334,32 +354,48 @@ |
| @end // @interface BrowserWindowController(WindowType) |
| -// Methods having to do with fullscreen mode. |
| +// Methods having to do with fullscreen and presentation mode. |
| @interface BrowserWindowController(Fullscreen) |
| -// Enters fullscreen mode. |
| -- (IBAction)enterFullscreen:(id)sender; |
| +// Toggles fullscreen mode. Meant to be called by Lion windows when they enter |
| +// or exit Lion fullscreen mode. Must not be called on Snow Leopard or earlier. |
| +- (void)handleLionToggleFullscreen; |
| -// Enters (or exits) fullscreen mode. |
| +// Enters (or exits) fullscreen mode. This method is safe to call on all OS |
| +// versions. |
| - (void)setFullscreen:(BOOL)fullscreen; |
| -// Returns fullscreen state. |
| +// Returns fullscreen state. This method is safe to call on all OS versions. |
| - (BOOL)isFullscreen; |
| +// Toggles presentation mode without exiting fullscreen mode. Should only be |
| +// called by the presentation mode toggle button. This method should not be |
| +// called on Snow Leopard or earlier. |
| +- (void)togglePresentationMode:(id)sender; |
| + |
| +// Enters (or exits) presentation mode. Also enters fullscreen mode if this |
| +// window is not already fullscreen. This method is safe to call on all OS |
| +// versions. |
| +- (void)setPresentationMode:(BOOL)presentationMode; |
| + |
| +// Returns presentation mode state. This method is safe to call on all OS |
| +// versions. |
| +- (BOOL)inPresentationMode; |
| + |
| // Resizes the fullscreen window to fit the screen it's currently on. Called by |
| -// the FullscreenController when there is a change in monitor placement or |
| +// the PresentationModeController when there is a change in monitor placement or |
| // resolution. |
| - (void)resizeFullscreenWindow; |
| -// Gets or sets the fraction of the floating bar (fullscreen overlay) that is |
| -// shown. 0 is completely hidden, 1 is fully shown. |
| +// Gets or sets the fraction of the floating bar (presentation mode overlay) |
| +// that is shown. 0 is completely hidden, 1 is fully shown. |
| - (CGFloat)floatingBarShownFraction; |
| - (void)setFloatingBarShownFraction:(CGFloat)fraction; |
| // Query/lock/release the requirement that the tab strip/toolbar/attached |
| // bookmark bar bar cluster is visible (e.g., when one of its elements has |
| -// focus). This is required for the floating bar in fullscreen mode, but should |
| -// also be called when not in fullscreen mode; see the comments for |
| +// focus). This is required for the floating bar in presentation mode, but |
| +// should also be called when not in presentation mode; see the comments for |
| // |barVisibilityLocks_| for more details. Double locks/releases by the same |
| // owner are ignored. If |animate:| is YES, then an animation may be performed, |
| // possibly after a small delay if |delay:| is YES. If |animate:| is NO, |