Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(999)

Unified Diff: chrome/browser/browser_theme_provider.cc

Issue 151153: Allow getting the theme tint as a value so that it can be applied independent... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/browser_theme_provider.h ('k') | chrome/browser/browser_theme_provider_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_theme_provider.cc
===================================================================
--- chrome/browser/browser_theme_provider.cc (revision 19724)
+++ chrome/browser/browser_theme_provider.cc (working copy)
@@ -137,7 +137,7 @@
}
BrowserThemeProvider::~BrowserThemeProvider() {
- FreeImages();
+ ClearCaches();
}
void BrowserThemeProvider::Init(Profile* profile) {
@@ -266,7 +266,7 @@
void BrowserThemeProvider::SetTheme(Extension* extension) {
// Clear our image cache.
- FreeImages();
+ ClearCaches();
DCHECK(extension);
DCHECK(extension->IsTheme());
@@ -289,7 +289,7 @@
void BrowserThemeProvider::UseDefaultTheme() {
// Clear our image cache.
- FreeImages();
+ ClearCaches();
images_.clear();
colors_.clear();
@@ -361,37 +361,56 @@
}
}
-skia::HSL BrowserThemeProvider::GetTint(int id) {
- DCHECK(CalledOnValidThread());
+const std::string BrowserThemeProvider::GetTintKey(int id) {
switch (id) {
case TINT_FRAME:
- return (tints_.find(kTintFrame) != tints_.end()) ?
- tints_[kTintFrame] : kDefaultTintFrame;
+ return kTintFrame;
case TINT_FRAME_INACTIVE:
- return (tints_.find(kTintFrameInactive) != tints_.end()) ?
- tints_[kTintFrameInactive] : kDefaultTintFrameInactive;
+ return kTintFrameInactive;
case TINT_FRAME_INCOGNITO:
- return (tints_.count(kTintFrameIncognito)) ?
- tints_[kTintFrameIncognito] : kDefaultTintFrameIncognito;
+ return kTintFrameIncognito;
case TINT_FRAME_INCOGNITO_INACTIVE:
- return (tints_.count(kTintFrameIncognitoInactive)) ?
- tints_[kTintFrameIncognitoInactive] :
- kDefaultTintFrameIncognitoInactive;
+ return kTintFrameIncognitoInactive;
case TINT_BUTTONS:
- return (tints_.find(kTintButtons) != tints_.end()) ?
- tints_[kTintButtons] :
- kDefaultTintButtons;
+ return kTintButtons;
case TINT_BACKGROUND_TAB:
- return (tints_.find(kTintBackgroundTab) != tints_.end()) ?
- tints_[kTintBackgroundTab] :
- kDefaultTintBackgroundTab;
+ return kTintBackgroundTab;
default:
NOTREACHED() << "Unknown tint requested";
+ return "";
}
- skia::HSL result = {-1, -1, -1};
- return result;
}
+skia::HSL BrowserThemeProvider::GetDefaultTint(int id) {
+ switch (id) {
+ case TINT_FRAME:
+ return kDefaultTintFrame;
+ case TINT_FRAME_INACTIVE:
+ return kDefaultTintFrameInactive;
+ case TINT_FRAME_INCOGNITO:
+ return kDefaultTintFrameIncognito;
+ case TINT_FRAME_INCOGNITO_INACTIVE:
+ return kDefaultTintFrameIncognitoInactive;
+ case TINT_BUTTONS:
+ return kDefaultTintButtons;
+ case TINT_BACKGROUND_TAB:
+ return kDefaultTintBackgroundTab;
+ default:
+ skia::HSL result = {-1, -1, -1};
+ return result;
+ }
+}
+
+skia::HSL BrowserThemeProvider::GetTint(int id) {
+ DCHECK(CalledOnValidThread());
+
+ TintMap::iterator tint_iter = tints_.find(GetTintKey(id));
+ if (tint_iter != tints_.end())
+ return tint_iter->second;
+ else
+ return GetDefaultTint(id);
+}
+
SkBitmap BrowserThemeProvider::TintBitmap(const SkBitmap& bitmap, int hsl_id) {
return skia::ImageOperations::CreateHSLShiftedBitmap(bitmap, GetTint(hsl_id));
}
@@ -730,8 +749,8 @@
return (colors_.find(id) != colors_.end()) ? colors_[id] : default_color;
}
-void BrowserThemeProvider::FreeImages() {
- FreePlatformImages();
+void BrowserThemeProvider::ClearCaches() {
+ FreePlatformCaches();
for (ImageCache::iterator i = image_cache_.begin();
i != image_cache_.end(); i++) {
delete i->second;
@@ -740,7 +759,7 @@
}
#if defined(OS_WIN)
-void BrowserThemeProvider::FreePlatformImages() {
+void BrowserThemeProvider::FreePlatformCaches() {
// Windows has no platform image cache to clear.
}
#endif
« no previous file with comments | « chrome/browser/browser_theme_provider.h ('k') | chrome/browser/browser_theme_provider_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698