diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 13:58:54 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 13:58:54 +0000 |
commit | e9051d2443755028d9f9ac4c9a6accbe6b150a21 (patch) | |
tree | 538cf356eeb02071dea333b58ee4bfd554a38dc6 /chrome/browser/browser_theme_provider_mac.mm | |
parent | 52110278125f17b8f2a99a12c03e14e816e65226 (diff) | |
download | chromium_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.mm | 26 |
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. |