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

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller_private.h

Issue 555243002: mac: Refactor browser_window_controller layout logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fullscreen_layout
Patch Set: Ensure location bar in consistent state after initialization. Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/browser_window_controller_private.h
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.h b/chrome/browser/ui/cocoa/browser_window_controller_private.h
index d726e46cfd88bf2333fe6722bde734c279cb7791..c480164ff6b7dfe6f7fadfac5f2e16566f0cc47c 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_private.h
+++ b/chrome/browser/ui/cocoa/browser_window_controller_private.h
@@ -8,6 +8,8 @@
#import "chrome/browser/ui/cocoa/browser_window_controller.h"
#import "chrome/browser/ui/cocoa/presentation_mode_controller.h"
+@class BrowserWindowLayout;
+
// Private methods for the |BrowserWindowController|. This category should
// contain the private methods used by different parts of the BWC; private
// methods used only by single parts should be declared in their own file.
@@ -34,10 +36,6 @@
// content area, download shelf (if any).
- (void)layoutSubviews;
-// Find the total height of the floating bar (in presentation mode). Safe to
-// call even when not in presentation mode.
-- (CGFloat)floatingBarHeight;
-
// Shows the informational "how to exit fullscreen" bubble.
- (void)showFullscreenExitBubbleIfNecessary;
- (void)destroyFullscreenExitBubbleIfNecessary;
@@ -49,44 +47,10 @@
width:(CGFloat)width
fullscreen:(BOOL)fullscreen;
-// Lays out the toolbar (or just location bar for popups) at the given maximum
-// y-coordinate, with the given width; returns the new maximum y (below the
-// toolbar).
-- (CGFloat)layoutToolbarAtMinX:(CGFloat)minX
- maxY:(CGFloat)maxY
- width:(CGFloat)width;
-
// Returns YES if the bookmark bar should be placed below the infobar, NO
// otherwise.
- (BOOL)placeBookmarkBarBelowInfoBar;
-// Lays out the bookmark bar at the given maximum y-coordinate, with the given
-// width; returns the new maximum y (below the bookmark bar). Note that one must
-// call it with the appropriate |maxY| which depends on whether or not the
-// bookmark bar is shown as the NTP bubble or not (use
-// |-placeBookmarkBarBelowInfoBar|).
-- (CGFloat)layoutBookmarkBarAtMinX:(CGFloat)minX
- maxY:(CGFloat)maxY
- width:(CGFloat)width;
-
-// Lay out the view which draws the background for the floating bar when in
-// 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
- 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).
-- (CGFloat)layoutInfoBarAtMinX:(CGFloat)minX
- maxY:(CGFloat)maxY
- width:(CGFloat)width;
-
-// Lays out the download shelf, if there is one, at the given minimum
-// y-coordinate, with the given width; returns the new minimum y (above the
-// download shelf). This is safe to call even if there is no download shelf.
-- (CGFloat)layoutDownloadShelfAtMinX:(CGFloat)minX
- minY:(CGFloat)minY
- width:(CGFloat)width;
// Lays out the tab content area in the given frame. If the height changes,
// sends a message to the renderer to resize.
@@ -142,14 +106,11 @@
// multiple direct subviews which are. http://crbug.com/413009
- (void)updateLayerOrdering:(NSView*)view;
-// Ensures the z-order of subviews is correct.
-- (void)updateSubviewZOrder:(BOOL)inPresentationMode;
-
// Update visibility of the infobar tip, depending on the state of the window.
- (void)updateInfoBarTipVisibility;
-// Returns the max top arrow height for infobar.
-- (NSInteger)infoBarMaxTopArrowHeight;
+// The min Y of the bubble point in the coordinate space of the toolbar.
+- (NSInteger)pageInfoBubblePointY;
// Configures the presentationModeController_ right after it is constructed.
- (void)configurePresentationModeController;
@@ -174,6 +135,31 @@
- (void)enterAppKitFullscreen;
- (void)exitAppKitFullscreen;
+// Updates |layout| with the full set of parameters required to statelessly
+// determine the layout of the views managed by this controller.
+- (void)updateLayoutParameters:(BrowserWindowLayout*)layout;
+
+// Applies a layout to the views managed by this controller.
+- (void)applyLayout:(BrowserWindowLayout*)layout;
+
+// Ensures that the window's content view's subviews have the correct
+// z-ordering. Will add or remove subviews as necessary.
+- (void)updateSubviewZOrder;
+
+// Performs updateSubviewZOrder when this controller is not in fullscreen.
+- (void)updateSubviewZOrderNormal;
+
+// Performs updateSubviewZOrder when this controller is in fullscreen.
+- (void)updateSubviewZOrderFullscreen;
+
+// Sets the content view's subviews. Attempts to not touch the tabContentArea
+// to prevent redraws.
+- (void)setContentViewSubviews:(NSArray*)subviews;
+
+// A hack required to get NSThemeFrame sub layers to order correctly. See
+// implementation for more details.
+- (void)updateSubviewZOrderHack;
+
@end // @interface BrowserWindowController(Private)
#endif // CHROME_BROWSER_UI_COCOA_BROWSER_WINDOW_CONTROLLER_PRIVATE_H_

Powered by Google App Engine
This is Rietveld 408576698