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

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

Issue 607723002: mac: Refactor tab strip layout logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tabstrip_relayout_bug_base
Patch Set: 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_layout.h
diff --git a/chrome/browser/ui/cocoa/browser_window_layout.h b/chrome/browser/ui/cocoa/browser_window_layout.h
index c89b17f22c764ac53b970e98c7e3ef8f6fc80717..b5a696684f4030598612907ca46ef3992c456e86 100644
--- a/chrome/browser/ui/cocoa/browser_window_layout.h
+++ b/chrome/browser/ui/cocoa/browser_window_layout.h
@@ -36,6 +36,18 @@ struct LayoutParameters {
CGFloat toolbarFraction;
BOOL hasTabStrip;
+ // The frame of the fullscreen button. May be NSZeroRect if the fullscreen
+ // button doesn't exist.
+ NSRect fullscreenButtonFrame;
+ // Whether the avatar button should be shown.
+ BOOL shouldShowAvatar;
+ // Whether to use the new avatar button.
+ BOOL shouldUseNewAvatar;
Robert Sesek 2014/09/26 16:55:54 Does shouldShowAvatar have to be YES for this to b
erikchen 2014/09/26 17:39:05 I've updated the comments to indicate that this pa
+ // The size of the avatar button.
Robert Sesek 2014/09/26 16:55:54 What is this if shouldShowAvatar is NO?
erikchen 2014/09/26 17:39:05 ditto
+ NSSize avatarSize;
+ // The line width that will generate a 1 pixel wide line for the avatar's
+ // superview.
+ CGFloat avatarLineWidth;
BOOL hasToolbar;
BOOL hasLocationBar;
@@ -58,9 +70,23 @@ struct LayoutParameters {
CGFloat downloadShelfHeight;
};
-// The output frames of the views managed by the BrowserWindowController.
+// The parameters required to lay out the tab strip and its components.
+struct TabStripLayout {
+ // The frame of the tab strip in window coordinates.
+ NSRect frame;
+ CGFloat leftIndent;
Robert Sesek 2014/09/26 16:55:54 What are these idnenting?
erikchen 2014/09/26 17:39:05 Added comments. The indent is for the controls of
+ CGFloat rightIndent;
+ BOOL addWindowControls;
Robert Sesek 2014/09/26 16:55:54 Comment.
erikchen 2014/09/26 17:39:05 Done. "Whether the TabStripController needs to add
+ // The frame of the avatar in window coordinates.
+ NSRect avatarFrame;
+};
+
+// The output frames of the views managed by the BrowserWindowController. All
+// frames are in the coordinate system of the window. The lower-left corner of
+// the contentView coincides with the lower-left corner of the window, so these
+// frames are also in the coordinate system of the contentView.
struct LayoutOutput {
- NSRect tabStripFrame;
+ TabStripLayout tabStripLayout;
NSRect toolbarFrame;
NSRect bookmarkFrame;
NSRect fullscreenBackingBarFrame;
@@ -114,6 +140,11 @@ struct LayoutOutput {
- (void)setFullscreenToolbarFraction:(CGFloat)toolbarFraction;
- (void)setHasTabStrip:(BOOL)hasTabStrip;
+- (void)setFullscreenButtonFrame:(NSRect)frame;
+- (void)setShouldShowAvatar:(BOOL)shouldShowAvatar;
+- (void)setShouldUseNewAvatar:(BOOL)shouldUseNewAvatar;
+- (void)setAvatarSize:(NSSize)avatarSize;
+- (void)setAvatarLineWidth:(BOOL)avatarLineWidth;
- (void)setHasToolbar:(BOOL)hasToolbar;
- (void)setHasLocationBar:(BOOL)hasLocationBar;

Powered by Google App Engine
This is Rietveld 408576698