| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "ui/native_theme/native_theme_mac.h" | 5 #include "ui/native_theme/native_theme_mac.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/mac/mac_util.h" | 10 #include "base/mac/mac_util.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 if (device_color) | 90 if (device_color) |
| 91 return gfx::NSDeviceColorToSkColor(device_color); | 91 return gfx::NSDeviceColorToSkColor(device_color); |
| 92 | 92 |
| 93 // Sometimes the conversion is not possible, but we can get an approximation | 93 // Sometimes the conversion is not possible, but we can get an approximation |
| 94 // by going through a CGColorRef. Note that simply using NSColor methods for | 94 // by going through a CGColorRef. Note that simply using NSColor methods for |
| 95 // accessing components for system colors results in exceptions like | 95 // accessing components for system colors results in exceptions like |
| 96 // "-numberOfComponents not valid for the NSColor NSNamedColorSpace System | 96 // "-numberOfComponents not valid for the NSColor NSNamedColorSpace System |
| 97 // windowBackgroundColor; need to first convert colorspace." Hence the | 97 // windowBackgroundColor; need to first convert colorspace." Hence the |
| 98 // conversion first to CGColor. | 98 // conversion first to CGColor. |
| 99 CGColorRef cg_color = [color CGColor]; | 99 CGColorRef cg_color = [color CGColor]; |
| 100 if (CGColorGetNumberOfComponents(cg_color) == 4) | 100 const size_t component_count = CGColorGetNumberOfComponents(cg_color); |
| 101 if (component_count == 4) |
| 101 return gfx::CGColorRefToSkColor(cg_color); | 102 return gfx::CGColorRefToSkColor(cg_color); |
| 102 | 103 |
| 103 CHECK_EQ(2u, CGColorGetNumberOfComponents(cg_color)); | 104 CHECK(component_count == 1 || component_count == 2); |
| 104 // Two components means a grayscale channel and an alpha channel, which | 105 // 1-2 components means a grayscale channel and maybe an alpha channel, which |
| 105 // CGColorRefToSkColor will not like. But RGB is additive, so the conversion | 106 // CGColorRefToSkColor will not like. But RGB is additive, so the conversion |
| 106 // is easy (RGB to grayscale is less easy). | 107 // is easy (RGB to grayscale is less easy). |
| 107 const CGFloat* components = CGColorGetComponents(cg_color); | 108 const CGFloat* components = CGColorGetComponents(cg_color); |
| 108 return SkColorSetARGB(SkScalarRoundToInt(255.0 * components[1]), | 109 CGFloat alpha = component_count == 2 ? components[1] : 1.0; |
| 110 return SkColorSetARGB(SkScalarRoundToInt(255.0 * alpha), |
| 109 SkScalarRoundToInt(255.0 * components[0]), | 111 SkScalarRoundToInt(255.0 * components[0]), |
| 110 SkScalarRoundToInt(255.0 * components[0]), | 112 SkScalarRoundToInt(255.0 * components[0]), |
| 111 SkScalarRoundToInt(255.0 * components[0])); | 113 SkScalarRoundToInt(255.0 * components[0])); |
| 112 } | 114 } |
| 113 | 115 |
| 114 } // namespace | 116 } // namespace |
| 115 | 117 |
| 116 namespace ui { | 118 namespace ui { |
| 117 | 119 |
| 118 // static | 120 // static |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 set_scrollbar_button_length(0); | 363 set_scrollbar_button_length(0); |
| 362 SetScrollbarColors(kScrollerThumbColor, | 364 SetScrollbarColors(kScrollerThumbColor, |
| 363 kScrollerThumbHoverColor, | 365 kScrollerThumbHoverColor, |
| 364 kScrollerTrackGradientColors[0]); | 366 kScrollerTrackGradientColors[0]); |
| 365 } | 367 } |
| 366 | 368 |
| 367 NativeThemeMac::~NativeThemeMac() { | 369 NativeThemeMac::~NativeThemeMac() { |
| 368 } | 370 } |
| 369 | 371 |
| 370 } // namespace ui | 372 } // namespace ui |
| OLD | NEW |