summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_theme_provider_mac.mm
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-04 13:58:54 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-04 13:58:54 +0000
commite9051d2443755028d9f9ac4c9a6accbe6b150a21 (patch)
tree538cf356eeb02071dea333b58ee4bfd554a38dc6 /chrome/browser/browser_theme_provider_mac.mm
parent52110278125f17b8f2a99a12c03e14e816e65226 (diff)
downloadchromium_src-e9051d2443755028d9f9ac4c9a6accbe6b150a21.zip
chromium_src-e9051d2443755028d9f9ac4c9a6accbe6b150a21.tar.gz
chromium_src-e9051d2443755028d9f9ac4c9a6accbe6b150a21.tar.bz2
Do proper HSL > HSB conversion.
BUG=http://crbug.com/15760 TEST=slight visual change Review URL: http://codereview.chromium.org/159810 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22377 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_theme_provider_mac.mm')
-rw-r--r--chrome/browser/browser_theme_provider_mac.mm26
1 files changed, 20 insertions, 6 deletions
diff --git a/chrome/browser/browser_theme_provider_mac.mm b/chrome/browser/browser_theme_provider_mac.mm
index 300cf70..059f24d 100644
--- a/chrome/browser/browser_theme_provider_mac.mm
+++ b/chrome/browser/browser_theme_provider_mac.mm
@@ -7,8 +7,23 @@
#import <Cocoa/Cocoa.h>
#include "base/logging.h"
+#include "skia/ext/skia_utils.h"
#include "skia/ext/skia_utils_mac.h"
+namespace {
+
+void HSLToHSB(const skia::HSL& hsl, CGFloat* h, CGFloat* s, CGFloat* b) {
+ SkColor color = skia::HSLToSkColor(1.0, hsl); // alpha value doesn't matter
+ SkScalar hsv[3];
+ SkColorToHSV(color, hsv);
+
+ *h = SkScalarToDouble(hsv[0]) / 360.0;
+ *s = SkScalarToDouble(hsv[1]);
+ *b = SkScalarToDouble(hsv[2]);
+}
+
+}
+
NSImage* BrowserThemeProvider::GetNSImageNamed(int id) {
DCHECK(CalledOnValidThread());
@@ -63,13 +78,12 @@ NSColor* BrowserThemeProvider::GetNSColorTint(int id) {
TintMap::iterator tint_iter = tints_.find(GetTintKey(id));
if (tint_iter != tints_.end()) {
skia::HSL tint = tint_iter->second;
+ CGFloat hue, saturation, brightness;
+ HSLToHSB(tint, &hue, &saturation, &brightness);
- // The tint is HSL, not HSB, but we're cheating for now. TODO(avi,alcor):
- // determine how much this matters and fix it if necessary.
- // http://crbug.com/15760
- NSColor* tint_color = [NSColor colorWithCalibratedHue:tint.h
- saturation:tint.s
- brightness:tint.l
+ NSColor* tint_color = [NSColor colorWithCalibratedHue:hue
+ saturation:saturation
+ brightness:brightness
alpha:1.0];
// We loaded successfully. Cache the color.