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

Unified Diff: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm

Issue 508313002: mac: Add traffic lights to fullscreen mode in Yosemite. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@new_fullscreen2
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/cocoa/tabs/tab_strip_controller.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
index 71744be17d60c6cdc4fb0c0f045d920e7be54d61..03321a62c725317b47adba48b073e3edaa5b0180 100644
--- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
+++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
@@ -2172,6 +2172,52 @@ NSImage* Overlay(NSImage* ground, NSImage* overlay, CGFloat alpha) {
return [tabContentsArray_ objectAtIndex:index];
}
+- (void)addWindowControls {
+ if (!fullscreenWindowControls_) {
+ // Make the container view.
+ CGFloat height = NSHeight([tabStripView_ frame]);
+ NSRect frame = NSMakeRect(0, 0, self.leftIndentForControls, height);
Robert Sesek 2014/09/02 19:01:05 This file has an overwhelming preference against d
erikchen 2014/09/03 00:31:44 I removed all instances of dot notation from this
+ fullscreenWindowControls_.reset([[NSView alloc] initWithFrame:frame]);
+ [fullscreenWindowControls_
+ setAutoresizingMask:NSViewMaxXMargin | NSViewHeightSizable];
+
+ // Add the traffic light buttons. The horizontal layout was determined by
+ // manual inspection on Yosemite.
+ NSUInteger styleMask = [tabStripView_ window].styleMask;
+ NSButton* closeButton = [NSWindow standardWindowButton:NSWindowCloseButton
+ forStyleMask:styleMask];
+
+ // Vertically center the buttons in the tab strip.
+ CGFloat buttonY = floor((height - NSHeight(closeButton.bounds)) / 2);
+ [closeButton setFrameOrigin:NSMakePoint(11, buttonY)];
Robert Sesek 2014/09/02 19:01:05 Pull these magic numbers into method-local magic n
erikchen 2014/09/03 00:31:44 Done.
+ [fullscreenWindowControls_ addSubview:closeButton];
+
+ NSButton* miniaturizeButton =
+ [NSWindow standardWindowButton:NSWindowMiniaturizeButton
+ forStyleMask:styleMask];
+ [miniaturizeButton setFrameOrigin:NSMakePoint(31, buttonY)];
+ [miniaturizeButton setEnabled:NO];
+ [fullscreenWindowControls_ addSubview:miniaturizeButton];
+
+ NSButton* fullscreenButton =
+ [NSWindow standardWindowButton:NSWindowZoomButton
+ forStyleMask:styleMask];
+ [fullscreenWindowControls_ addSubview:fullscreenButton];
+ [fullscreenButton setFrameOrigin:NSMakePoint(51, buttonY)];
+ }
+
+ if (![permanentSubviews_ containsObject:fullscreenWindowControls_]) {
+ [self addSubviewToPermanentList:fullscreenWindowControls_];
+ [self regenerateSubviewList];
+ }
+}
+
+- (void)removeWindowControls {
+ if (fullscreenWindowControls_)
+ [permanentSubviews_ removeObject:fullscreenWindowControls_];
+ [self regenerateSubviewList];
+}
+
- (void)themeDidChangeNotification:(NSNotification*)notification {
[self setNewTabImages];
}
« no previous file with comments | « chrome/browser/ui/cocoa/tabs/tab_strip_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698