Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2446)

Side by Side Diff: chrome/browser/ui/cocoa/browser_window_controller_private.h

Issue 7566016: Fullscreen support for Lion. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #ifndef CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_ 5 #ifndef CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_
6 #define CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_ 6 #define CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_
7 #pragma once 7 #pragma once
8 8
9 #import "chrome/browser/ui/cocoa/browser_window_controller.h" 9 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
10 10
11 11
12 // Private methods for the |BrowserWindowController|. This category should 12 // Private methods for the |BrowserWindowController|. This category should
13 // contain the private methods used by different parts of the BWC; private 13 // contain the private methods used by different parts of the BWC; private
14 // methods used only by single parts should be declared in their own file. 14 // methods used only by single parts should be declared in their own file.
15 // TODO(viettrungluu): [crbug.com/35543] work on splitting out stuff from the 15 // TODO(viettrungluu): [crbug.com/35543] work on splitting out stuff from the
16 // BWC, and figuring out which methods belong here (need to unravel 16 // BWC, and figuring out which methods belong here (need to unravel
17 // "dependencies"). 17 // "dependencies").
18 @interface BrowserWindowController(Private) 18 @interface BrowserWindowController(Private)
19 19
20 // Create the appropriate tab strip controller based on whether or not side 20 // Create the appropriate tab strip controller based on whether or not side
21 // tabs are enabled. Replaces the current controller. 21 // tabs are enabled. Replaces the current controller.
22 - (void)createTabStripController; 22 - (void)createTabStripController;
23 23
24 // Creates the button used to toggle presentation mode. Must only be called on
25 // Lion or later. Does nothing if the button already exists.
26 - (void)createAndInstallPresentationModeToggleButton;
27
24 // Saves the window's position in the local state preferences. 28 // Saves the window's position in the local state preferences.
25 - (void)saveWindowPositionIfNeeded; 29 - (void)saveWindowPositionIfNeeded;
26 30
27 // Saves the window's position to the given pref service. 31 // Saves the window's position to the given pref service.
28 - (void)saveWindowPositionToPrefs:(PrefService*)prefs; 32 - (void)saveWindowPositionToPrefs:(PrefService*)prefs;
29 33
30 // We need to adjust where sheets come out of the window, as by default they 34 // We need to adjust where sheets come out of the window, as by default they
31 // erupt from the omnibox, which is rather weird. 35 // erupt from the omnibox, which is rather weird.
32 - (NSRect)window:(NSWindow*)window 36 - (NSRect)window:(NSWindow*)window
33 willPositionSheet:(NSWindow*)sheet 37 willPositionSheet:(NSWindow*)sheet
34 usingRect:(NSRect)defaultSheetRect; 38 usingRect:(NSRect)defaultSheetRect;
35 39
36 // Repositions the window's subviews. From the top down: toolbar, normal 40 // Repositions the window's subviews. From the top down: toolbar, normal
37 // bookmark bar (if shown), infobar, NTP detached bookmark bar (if shown), 41 // bookmark bar (if shown), infobar, NTP detached bookmark bar (if shown),
38 // content area, download shelf (if any). 42 // content area, download shelf (if any).
39 - (void)layoutSubviews; 43 - (void)layoutSubviews;
40 44
41 // Find the total height of the floating bar (in fullscreen mode). Safe to call 45 // Find the total height of the floating bar (in presentation mode). Safe to
42 // even when not in fullscreen mode. 46 // call even when not in presentation mode.
43 - (CGFloat)floatingBarHeight; 47 - (CGFloat)floatingBarHeight;
44 48
49 // Lays out the presentation mode toggle button at the top right corner of the
50 // overlay. Creates the button if needed, and removes it if it is not needed.
51 // This method is safe to call on all OS versions.
52 - (void)layoutPresentationModeToggleAtOverlayMaxX:(CGFloat)maxX
53 OverlayMaxY:(CGFloat)maxY;
Robert Sesek 2011/08/04 14:43:41 nit: lowercase O
rohitrao (ping after 24h) 2011/08/04 18:18:26 Done.
54
45 // Lays out the tab strip at the given maximum y-coordinate, with the given 55 // Lays out the tab strip at the given maximum y-coordinate, with the given
46 // width, possibly for fullscreen mode; returns the new maximum y (below the tab 56 // width, possibly for fullscreen mode; returns the new maximum y (below the
47 // strip). This is safe to call even when there is no tab strip. 57 // tab strip). This is safe to call even when there is no tab strip.
48 - (CGFloat)layoutTabStripAtMaxY:(CGFloat)maxY 58 - (CGFloat)layoutTabStripAtMaxY:(CGFloat)maxY
49 width:(CGFloat)width 59 width:(CGFloat)width
50 fullscreen:(BOOL)fullscreen; 60 fullscreen:(BOOL)fullscreen;
51 61
52 // Lays out the toolbar (or just location bar for popups) at the given maximum 62 // Lays out the toolbar (or just location bar for popups) at the given maximum
53 // y-coordinate, with the given width; returns the new maximum y (below the 63 // y-coordinate, with the given width; returns the new maximum y (below the
54 // toolbar). 64 // toolbar).
55 - (CGFloat)layoutToolbarAtMinX:(CGFloat)minX 65 - (CGFloat)layoutToolbarAtMinX:(CGFloat)minX
56 maxY:(CGFloat)maxY 66 maxY:(CGFloat)maxY
57 width:(CGFloat)width; 67 width:(CGFloat)width;
58 68
59 // Returns YES if the bookmark bar should be placed below the infobar, NO 69 // Returns YES if the bookmark bar should be placed below the infobar, NO
60 // otherwise. 70 // otherwise.
61 - (BOOL)placeBookmarkBarBelowInfoBar; 71 - (BOOL)placeBookmarkBarBelowInfoBar;
62 72
63 // Lays out the bookmark bar at the given maximum y-coordinate, with the given 73 // Lays out the bookmark bar at the given maximum y-coordinate, with the given
64 // width; returns the new maximum y (below the bookmark bar). Note that one must 74 // width; returns the new maximum y (below the bookmark bar). Note that one must
65 // call it with the appropriate |maxY| which depends on whether or not the 75 // call it with the appropriate |maxY| which depends on whether or not the
66 // bookmark bar is shown as the NTP bubble or not (use 76 // bookmark bar is shown as the NTP bubble or not (use
67 // |-placeBookmarkBarBelowInfoBar|). 77 // |-placeBookmarkBarBelowInfoBar|).
68 - (CGFloat)layoutBookmarkBarAtMinX:(CGFloat)minX 78 - (CGFloat)layoutBookmarkBarAtMinX:(CGFloat)minX
69 maxY:(CGFloat)maxY 79 maxY:(CGFloat)maxY
70 width:(CGFloat)width; 80 width:(CGFloat)width;
71 81
72 // Lay out the view which draws the background for the floating bar when in 82 // Lay out the view which draws the background for the floating bar when in
73 // fullscreen mode, with the given frame and fullscreen-mode-status. Should be 83 // presentation mode, with the given frame and presentation-mode-status. Should
74 // called even when not in fullscreen mode to hide the backing view. 84 // be called even when not in presentation mode to hide the backing view.
75 - (void)layoutFloatingBarBackingView:(NSRect)frame 85 - (void)layoutFloatingBarBackingView:(NSRect)frame
76 fullscreen:(BOOL)fullscreen; 86 presentationMode:(BOOL)presentationMode;
77 87
78 // Lays out the infobar at the given maximum y-coordinate, with the given width; 88 // Lays out the infobar at the given maximum y-coordinate, with the given width;
79 // returns the new maximum y (below the infobar). 89 // returns the new maximum y (below the infobar).
80 - (CGFloat)layoutInfoBarAtMinX:(CGFloat)minX 90 - (CGFloat)layoutInfoBarAtMinX:(CGFloat)minX
81 maxY:(CGFloat)maxY 91 maxY:(CGFloat)maxY
82 width:(CGFloat)width; 92 width:(CGFloat)width;
83 93
84 // Lays out the download shelf, if there is one, at the given minimum 94 // Lays out the download shelf, if there is one, at the given minimum
85 // y-coordinate, with the given width; returns the new minimum y (above the 95 // y-coordinate, with the given width; returns the new minimum y (above the
86 // download shelf). This is safe to call even if there is no download shelf. 96 // download shelf). This is safe to call even if there is no download shelf.
(...skipping 10 matching lines...) Expand all
97 107
98 // Is the current page one for which the bookmark should be shown detached *if* 108 // Is the current page one for which the bookmark should be shown detached *if*
99 // the normal bookmark bar is not shown? 109 // the normal bookmark bar is not shown?
100 - (BOOL)shouldShowDetachedBookmarkBar; 110 - (BOOL)shouldShowDetachedBookmarkBar;
101 111
102 // Sets the toolbar's height to a value appropriate for the given compression. 112 // Sets the toolbar's height to a value appropriate for the given compression.
103 // Also adjusts the bookmark bar's height by the opposite amount in order to 113 // Also adjusts the bookmark bar's height by the opposite amount in order to
104 // keep the total height of the two views constant. 114 // keep the total height of the two views constant.
105 - (void)adjustToolbarAndBookmarkBarForCompression:(CGFloat)compression; 115 - (void)adjustToolbarAndBookmarkBarForCompression:(CGFloat)compression;
106 116
107 // Adjust the UI when entering or leaving fullscreen mode. 117 // Gets and sets whether to default to presentation mode when entering
108 - (void)adjustUIForFullscreen:(BOOL)fullscreen; 118 // fullscreen on Lion or later. On Leopard and Snow Leopard, this preference is
119 // ignored (fullscreen mode always turns presentation mode on). This method is
120 // safe to call on all OS versions.
121 - (BOOL)shouldUsePresentationModeWhenEnteringFullscreen;
122 - (void)setShouldUsePresentationModeWhenEnteringFullscreen:(BOOL)flag;
123
124 // Whether to show the presentation mode toggle button in the UI. Returns YES
125 // if in fullscreen mode on Lion or later. This method is safe to call on all
126 // OS versions.
127 - (BOOL)shouldShowPresentationModeToggle;
128
129 // Moves views between windows in preparation for fullscreen mode on Snow
130 // Leopard or earlier. (Lion and later reuses the original window for
131 // fullscreen mode, so there is no need to move views around.) This method does
132 // not position views; callers must also call |-layoutSubviews|. This method
133 // must not be called on Lion or later.
134 - (void)moveViewsForFullscreen:(BOOL)fullscreen
135 regularWindow:(NSWindow*)regularWindow
136 fullscreenWindow:(NSWindow*)fullscreenWindow;
137
138 // Sets presentation mode, creating the PresentationModeController if needed and
139 // forcing a relayout. If |forceDropdown| is YES, this method will always
140 // initially show the floating bar when entering presentation mode, even if the
141 // floating bar does not have focus. This method is safe to call on all OS
142 // versions.
143 - (void)setPresentationModeInternal:(BOOL)presentationMode
144 forceDropdown:(BOOL)forceDropdown;
145
146 // Called on Snow Leopard or earlier to enter or exit fullscreen. These methods
147 // are internal implementations of |-setFullscreen:|. These methods must not be
148 // called on Lion or later.
149 - (void)enterFullscreenForSnowLeopardOrEarlier;
150 - (void)exitFullscreenForSnowLeopardOrEarlier;
151
152 // Register or deregister for content view resize notifications. These
153 // notifications are used while transitioning to fullscreen mode in Lion or
154 // later. This method is safe to call on all OS versions.
155 - (void)registerForContentViewResizeNotifications;
156 - (void)deregisterForContentViewResizeNotifications;
157
158 // Adjust the UI when entering or leaving presentation mode. This method is
159 // safe to call on all OS versions.
160 - (void)adjustUIForPresentationMode:(BOOL)fullscreen;
109 161
110 // Allows/prevents bar visibility locks and releases from updating the visual 162 // Allows/prevents bar visibility locks and releases from updating the visual
111 // state. Enabling makes changes instantaneously; disabling cancels any 163 // state. Enabling makes changes instantaneously; disabling cancels any
112 // timers/animation. 164 // timers/animation.
113 - (void)enableBarVisibilityUpdates; 165 - (void)enableBarVisibilityUpdates;
114 - (void)disableBarVisibilityUpdates; 166 - (void)disableBarVisibilityUpdates;
115 167
116 // For versions of Mac OS that provide an "enter fullscreen" button, make one
117 // appear (in a rather hacky manner). http://crbug.com/74065 : When switching
118 // the fullscreen implementation to the new API, revisit how much of this
119 // hacky code is necessary.
120 - (void)setUpOSFullScreenButton;
121
122 @end // @interface BrowserWindowController(Private) 168 @end // @interface BrowserWindowController(Private)
123 169
124 #endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_ 170 #endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698