OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" | 5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" |
6 | 6 |
7 #import <QuartzCore/QuartzCore.h> | 7 #import <QuartzCore/QuartzCore.h> |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 #include <limits> | 10 #include <limits> |
(...skipping 2184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2195 int modelIndex = tabStripModel_->active_index(); | 2195 int modelIndex = tabStripModel_->active_index(); |
2196 if (modelIndex < 0) | 2196 if (modelIndex < 0) |
2197 return nil; | 2197 return nil; |
2198 NSInteger index = [self indexFromModelIndex:modelIndex]; | 2198 NSInteger index = [self indexFromModelIndex:modelIndex]; |
2199 if (index < 0 || | 2199 if (index < 0 || |
2200 index >= (NSInteger)[tabContentsArray_ count]) | 2200 index >= (NSInteger)[tabContentsArray_ count]) |
2201 return nil; | 2201 return nil; |
2202 return [tabContentsArray_ objectAtIndex:index]; | 2202 return [tabContentsArray_ objectAtIndex:index]; |
2203 } | 2203 } |
2204 | 2204 |
2205 - (void)addWindowControls { | 2205 - (void)addCustomWindowControls { |
2206 if (!fullscreenWindowControls_) { | 2206 if (!customWindowControls_) { |
2207 // Make the container view. | 2207 // Make the container view. |
2208 CGFloat height = NSHeight([tabStripView_ frame]); | 2208 CGFloat height = NSHeight([tabStripView_ frame]); |
2209 NSRect frame = NSMakeRect(0, 0, [self leftIndentForControls], height); | 2209 NSRect frame = NSMakeRect(0, 0, [self leftIndentForControls], height); |
2210 fullscreenWindowControls_.reset([[NSView alloc] initWithFrame:frame]); | 2210 customWindowControls_.reset([[NSView alloc] initWithFrame:frame]); |
2211 [fullscreenWindowControls_ | 2211 [customWindowControls_ |
2212 setAutoresizingMask:NSViewMaxXMargin | NSViewHeightSizable]; | 2212 setAutoresizingMask:NSViewMaxXMargin | NSViewHeightSizable]; |
2213 | 2213 |
2214 // Add the traffic light buttons. The horizontal layout was determined by | 2214 // Add the traffic light buttons. The horizontal layout was determined by |
2215 // manual inspection on Yosemite. | 2215 // manual inspection on Yosemite. |
2216 CGFloat closeButtonX = 11; | 2216 CGFloat closeButtonX = 11; |
2217 CGFloat miniButtonX = 31; | 2217 CGFloat miniButtonX = 31; |
2218 CGFloat zoomButtonX = 51; | 2218 CGFloat zoomButtonX = 51; |
2219 | 2219 |
2220 NSUInteger styleMask = [[tabStripView_ window] styleMask]; | 2220 NSUInteger styleMask = [[tabStripView_ window] styleMask]; |
2221 NSButton* closeButton = [NSWindow standardWindowButton:NSWindowCloseButton | 2221 NSButton* closeButton = [NSWindow standardWindowButton:NSWindowCloseButton |
2222 forStyleMask:styleMask]; | 2222 forStyleMask:styleMask]; |
2223 | 2223 |
2224 // Vertically center the buttons in the tab strip. | 2224 // Vertically center the buttons in the tab strip. |
2225 CGFloat buttonY = floor((height - NSHeight([closeButton bounds])) / 2); | 2225 CGFloat buttonY = floor((height - NSHeight([closeButton bounds])) / 2); |
2226 [closeButton setFrameOrigin:NSMakePoint(closeButtonX, buttonY)]; | 2226 [closeButton setFrameOrigin:NSMakePoint(closeButtonX, buttonY)]; |
2227 [fullscreenWindowControls_ addSubview:closeButton]; | 2227 [customWindowControls_ addSubview:closeButton]; |
2228 | 2228 |
2229 NSButton* miniaturizeButton = | 2229 NSButton* miniaturizeButton = |
2230 [NSWindow standardWindowButton:NSWindowMiniaturizeButton | 2230 [NSWindow standardWindowButton:NSWindowMiniaturizeButton |
2231 forStyleMask:styleMask]; | 2231 forStyleMask:styleMask]; |
2232 [miniaturizeButton setFrameOrigin:NSMakePoint(miniButtonX, buttonY)]; | 2232 [miniaturizeButton setFrameOrigin:NSMakePoint(miniButtonX, buttonY)]; |
2233 [miniaturizeButton setEnabled:NO]; | 2233 [miniaturizeButton setEnabled:NO]; |
2234 [fullscreenWindowControls_ addSubview:miniaturizeButton]; | 2234 [customWindowControls_ addSubview:miniaturizeButton]; |
2235 | 2235 |
2236 NSButton* zoomButton = | 2236 NSButton* zoomButton = |
2237 [NSWindow standardWindowButton:NSWindowZoomButton | 2237 [NSWindow standardWindowButton:NSWindowZoomButton |
2238 forStyleMask:styleMask]; | 2238 forStyleMask:styleMask]; |
2239 [fullscreenWindowControls_ addSubview:zoomButton]; | 2239 [customWindowControls_ addSubview:zoomButton]; |
2240 [zoomButton setFrameOrigin:NSMakePoint(zoomButtonX, buttonY)]; | 2240 [zoomButton setFrameOrigin:NSMakePoint(zoomButtonX, buttonY)]; |
2241 } | 2241 } |
2242 | 2242 |
2243 if (![permanentSubviews_ containsObject:fullscreenWindowControls_]) { | 2243 if (![permanentSubviews_ containsObject:customWindowControls_]) { |
2244 [self addSubviewToPermanentList:fullscreenWindowControls_]; | 2244 [self addSubviewToPermanentList:customWindowControls_]; |
2245 [self regenerateSubviewList]; | 2245 [self regenerateSubviewList]; |
2246 } | 2246 } |
2247 } | 2247 } |
2248 | 2248 |
2249 - (void)removeWindowControls { | 2249 - (void)removeCustomWindowControls { |
2250 if (fullscreenWindowControls_) | 2250 if (customWindowControls_) |
2251 [permanentSubviews_ removeObject:fullscreenWindowControls_]; | 2251 [permanentSubviews_ removeObject:customWindowControls_]; |
2252 [self regenerateSubviewList]; | 2252 [self regenerateSubviewList]; |
2253 } | 2253 } |
2254 | 2254 |
2255 - (void)themeDidChangeNotification:(NSNotification*)notification { | 2255 - (void)themeDidChangeNotification:(NSNotification*)notification { |
2256 [self setNewTabImages]; | 2256 [self setNewTabImages]; |
2257 } | 2257 } |
2258 | 2258 |
2259 - (void)setNewTabImages { | 2259 - (void)setNewTabImages { |
2260 ThemeService *theme = | 2260 ThemeService *theme = |
2261 static_cast<ThemeService*>([[tabStripView_ window] themeProvider]); | 2261 static_cast<ThemeService*>([[tabStripView_ window] themeProvider]); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2309 } | 2309 } |
2310 | 2310 |
2311 NSRect GetSheetParentBoundsForParentView(NSView* view) { | 2311 NSRect GetSheetParentBoundsForParentView(NSView* view) { |
2312 // If the devtools view is open, it shrinks the size of the WebContents, so go | 2312 // If the devtools view is open, it shrinks the size of the WebContents, so go |
2313 // up the hierarchy to the devtools container view to avoid that. Note that | 2313 // up the hierarchy to the devtools container view to avoid that. Note that |
2314 // the devtools view is always in the hierarchy even if it is not open or it | 2314 // the devtools view is always in the hierarchy even if it is not open or it |
2315 // is detached. | 2315 // is detached. |
2316 NSView* devtools_view = [[[view superview] superview] superview]; | 2316 NSView* devtools_view = [[[view superview] superview] superview]; |
2317 return [devtools_view convertRect:[devtools_view bounds] toView:nil]; | 2317 return [devtools_view convertRect:[devtools_view bounds] toView:nil]; |
2318 } | 2318 } |
OLD | NEW |