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 #include "chrome/browser/ui/cocoa/gradient_button_cell.h" | 5 #include "chrome/browser/ui/cocoa/gradient_button_cell.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #import "base/memory/scoped_nsobject.h" | 10 #import "base/mac/scoped_nsobject.h" |
11 #import "chrome/browser/themes/theme_properties.h" | 11 #import "chrome/browser/themes/theme_properties.h" |
12 #import "chrome/browser/themes/theme_service.h" | 12 #import "chrome/browser/themes/theme_service.h" |
13 #import "chrome/browser/ui/cocoa/nsview_additions.h" | 13 #import "chrome/browser/ui/cocoa/nsview_additions.h" |
| 14 #import "chrome/browser/ui/cocoa/rect_path_utils.h" |
14 #import "chrome/browser/ui/cocoa/themed_window.h" | 15 #import "chrome/browser/ui/cocoa/themed_window.h" |
15 #import "chrome/browser/ui/cocoa/rect_path_utils.h" | |
16 #include "grit/theme_resources.h" | 16 #include "grit/theme_resources.h" |
17 #import "third_party/GTM/AppKit/GTMNSColor+Luminance.h" | 17 #import "third_party/GTM/AppKit/GTMNSColor+Luminance.h" |
18 #import "ui/base/cocoa/nsgraphics_context_additions.h" | 18 #import "ui/base/cocoa/nsgraphics_context_additions.h" |
19 #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h" | 19 #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h" |
20 | 20 |
21 @interface GradientButtonCell (Private) | 21 @interface GradientButtonCell (Private) |
22 - (void)sharedInit; | 22 - (void)sharedInit; |
23 | 23 |
24 // Get drawing parameters for a given cell frame in a given view. The inner | 24 // Get drawing parameters for a given cell frame in a given view. The inner |
25 // frame is the one required by |-drawInteriorWithFrame:inView:|. The inner and | 25 // frame is the one required by |-drawInteriorWithFrame:inView:|. The inner and |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 // Draw the inner glow. | 415 // Draw the inner glow. |
416 if (hoverAlpha > 0) { | 416 if (hoverAlpha > 0) { |
417 [innerPath setLineWidth:2]; | 417 [innerPath setLineWidth:2]; |
418 [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2 * hoverAlpha] setStroke]; | 418 [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2 * hoverAlpha] setStroke]; |
419 [innerPath stroke]; | 419 [innerPath stroke]; |
420 } | 420 } |
421 | 421 |
422 // Draw the top inner highlight. | 422 // Draw the top inner highlight. |
423 NSAffineTransform* highlightTransform = [NSAffineTransform transform]; | 423 NSAffineTransform* highlightTransform = [NSAffineTransform transform]; |
424 [highlightTransform translateXBy:1 yBy:1]; | 424 [highlightTransform translateXBy:1 yBy:1]; |
425 scoped_nsobject<NSBezierPath> highlightPath([innerPath copy]); | 425 base::scoped_nsobject<NSBezierPath> highlightPath([innerPath copy]); |
426 [highlightPath transformUsingAffineTransform:highlightTransform]; | 426 [highlightPath transformUsingAffineTransform:highlightTransform]; |
427 [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2] setStroke]; | 427 [[NSColor colorWithCalibratedWhite:1.0 alpha:0.2] setStroke]; |
428 [highlightPath stroke]; | 428 [highlightPath stroke]; |
429 | 429 |
430 // Draw the gradient inside. | 430 // Draw the gradient inside. |
431 [gradient drawInBezierPath:innerPath angle:90.0]; | 431 [gradient drawInBezierPath:innerPath angle:90.0]; |
432 } | 432 } |
433 | 433 |
434 // Don't draw anything else for disabled flat buttons. | 434 // Don't draw anything else for disabled flat buttons. |
435 if (isFlatButton && ![self isEnabled]) | 435 if (isFlatButton && ![self isEnabled]) |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
597 CGContextRef context = | 597 CGContextRef context = |
598 (CGContextRef)([[NSGraphicsContext currentContext] graphicsPort]); | 598 (CGContextRef)([[NSGraphicsContext currentContext] graphicsPort]); |
599 | 599 |
600 ThemeService* themeProvider = static_cast<ThemeService*>( | 600 ThemeService* themeProvider = static_cast<ThemeService*>( |
601 [[controlView window] themeProvider]); | 601 [[controlView window] themeProvider]); |
602 NSColor* color = themeProvider ? | 602 NSColor* color = themeProvider ? |
603 themeProvider->GetNSColorTint(ThemeProperties::TINT_BUTTONS, true) : | 603 themeProvider->GetNSColorTint(ThemeProperties::TINT_BUTTONS, true) : |
604 [NSColor blackColor]; | 604 [NSColor blackColor]; |
605 | 605 |
606 if (isTemplate && themeProvider && themeProvider->UsingDefaultTheme()) { | 606 if (isTemplate && themeProvider && themeProvider->UsingDefaultTheme()) { |
607 scoped_nsobject<NSShadow> shadow([[NSShadow alloc] init]); | 607 base::scoped_nsobject<NSShadow> shadow([[NSShadow alloc] init]); |
608 [shadow.get() setShadowColor:themeProvider->GetNSColor( | 608 [shadow.get() setShadowColor:themeProvider->GetNSColor( |
609 ThemeProperties::COLOR_TOOLBAR_BEZEL, true)]; | 609 ThemeProperties::COLOR_TOOLBAR_BEZEL, true)]; |
610 [shadow.get() setShadowOffset:NSMakeSize(0.0, -lineWidth)]; | 610 [shadow.get() setShadowOffset:NSMakeSize(0.0, -lineWidth)]; |
611 [shadow setShadowBlurRadius:lineWidth]; | 611 [shadow setShadowBlurRadius:lineWidth]; |
612 [shadow set]; | 612 [shadow set]; |
613 } | 613 } |
614 | 614 |
615 CGContextBeginTransparencyLayer(context, 0); | 615 CGContextBeginTransparencyLayer(context, 0); |
616 NSRect imageRect = NSZeroRect; | 616 NSRect imageRect = NSZeroRect; |
617 imageRect.size = [[self image] size]; | 617 imageRect.size = [[self image] size]; |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 options:options | 780 options:options |
781 owner:self | 781 owner:self |
782 userInfo:nil]); | 782 userInfo:nil]); |
783 if (isMouseInside_ != mouseInView) { | 783 if (isMouseInside_ != mouseInView) { |
784 [self setMouseInside:mouseInView animate:NO]; | 784 [self setMouseInside:mouseInView animate:NO]; |
785 [controlView setNeedsDisplay:YES]; | 785 [controlView setNeedsDisplay:YES]; |
786 } | 786 } |
787 } | 787 } |
788 | 788 |
789 @end | 789 @end |
OLD | NEW |