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

Side by Side Diff: chrome/browser/browser_theme_provider.cc

Issue 162010: Allow theming of colors for the Mac. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/browser_theme_provider.h" 5 #include "chrome/browser/browser_theme_provider.h"
6 6
7 #include "base/gfx/png_decoder.h" 7 #include "base/gfx/png_decoder.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/browser_list.h" 10 #include "chrome/browser/browser_list.h"
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 249
250 // We loaded successfully. Cache the bitmap. 250 // We loaded successfully. Cache the bitmap.
251 image_cache_[id] = result.get(); 251 image_cache_[id] = result.get();
252 return result.release(); 252 return result.release();
253 } else { 253 } else {
254 NOTREACHED() << "Failed to load a requested image"; 254 NOTREACHED() << "Failed to load a requested image";
255 return NULL; 255 return NULL;
256 } 256 }
257 } 257 }
258 258
259 const std::string BrowserThemeProvider::GetColorKey(int id) {
260 switch (id) {
261 case COLOR_FRAME:
262 return kColorFrame;
263 case COLOR_FRAME_INACTIVE:
264 return kColorFrameInactive;
265 case COLOR_FRAME_INCOGNITO:
266 return kColorFrameIncognito;
267 case COLOR_FRAME_INCOGNITO_INACTIVE:
268 return kColorFrameIncognitoInactive;
269 case COLOR_TOOLBAR:
270 return kColorToolbar;
271 case COLOR_TAB_TEXT:
272 return kColorTabText;
273 case COLOR_BACKGROUND_TAB_TEXT:
274 return kColorBackgroundTabText;
275 case COLOR_BOOKMARK_TEXT:
276 return kColorBookmarkText;
277 case COLOR_NTP_BACKGROUND:
278 return kColorNTPBackground;
279 case COLOR_NTP_TEXT:
280 return kColorNTPText;
281 case COLOR_NTP_LINK:
282 return kColorNTPLink;
283 case COLOR_NTP_SECTION:
284 return kColorNTPSection;
285 case COLOR_NTP_SECTION_TEXT:
286 return kColorNTPSectionText;
287 case COLOR_NTP_SECTION_LINK:
288 return kColorNTPSectionLink;
289 case COLOR_CONTROL_BACKGROUND:
290 return kColorControlBackground;
291 case COLOR_BUTTON_BACKGROUND:
292 return kColorButtonBackground;
293 default:
294 NOTREACHED() << "Unknown color requested";
295 return "";
296 }
297 }
298
299 SkColor BrowserThemeProvider::GetDefaultColor(int id) {
300 switch (id) {
301 case COLOR_FRAME:
302 return kDefaultColorFrame;
303 case COLOR_FRAME_INACTIVE:
304 return kDefaultColorFrameInactive;
305 case COLOR_FRAME_INCOGNITO:
306 return kDefaultColorFrameIncognito;
307 case COLOR_FRAME_INCOGNITO_INACTIVE:
308 return kDefaultColorFrameIncognitoInactive;
309 case COLOR_TOOLBAR:
310 return kDefaultColorToolbar;
311 case COLOR_TAB_TEXT:
312 return kDefaultColorTabText;
313 case COLOR_BACKGROUND_TAB_TEXT:
314 return kDefaultColorBackgroundTabText;
315 case COLOR_BOOKMARK_TEXT:
316 return kDefaultColorBookmarkText;
317 case COLOR_NTP_BACKGROUND:
318 return kDefaultColorNTPBackground;
319 case COLOR_NTP_TEXT:
320 return kDefaultColorNTPText;
321 case COLOR_NTP_LINK:
322 return kDefaultColorNTPLink;
323 case COLOR_NTP_SECTION:
324 return kDefaultColorNTPSection;
325 case COLOR_NTP_SECTION_TEXT:
326 return kDefaultColorNTPSectionText;
327 case COLOR_NTP_SECTION_LINK:
328 return kDefaultColorNTPSectionLink;
329 case COLOR_CONTROL_BACKGROUND:
330 return kDefaultColorControlBackground;
331 case COLOR_BUTTON_BACKGROUND:
332 return kDefaultColorButtonBackground;
333 default:
334 // Return a debugging red color.
335 return 0xffff0000;
336 }
337 }
338
259 SkColor BrowserThemeProvider::GetColor(int id) { 339 SkColor BrowserThemeProvider::GetColor(int id) {
260 DCHECK(CalledOnValidThread()); 340 DCHECK(CalledOnValidThread());
261 341
262 // TODO(glen): Figure out if we need to tint these. http://crbug.com/11578 342 // TODO(glen): Figure out if we need to tint these. http://crbug.com/11578
263 switch (id) { 343 ColorMap::iterator color_iter = colors_.find(GetColorKey(id));
264 case COLOR_FRAME: 344 if (color_iter != colors_.end())
265 return FindColor(kColorFrame, kDefaultColorFrame); 345 return color_iter->second;
266 case COLOR_FRAME_INACTIVE: 346 else
267 return FindColor(kColorFrameInactive, kDefaultColorFrameInactive); 347 return GetDefaultColor(id);
268 case COLOR_FRAME_INCOGNITO:
269 return FindColor(kColorFrameIncognito, kDefaultColorFrameIncognito);
270 case COLOR_FRAME_INCOGNITO_INACTIVE:
271 return FindColor(kColorFrameIncognitoInactive,
272 kDefaultColorFrameIncognitoInactive);
273 case COLOR_TOOLBAR:
274 return FindColor(kColorToolbar, kDefaultColorToolbar);
275 case COLOR_TAB_TEXT:
276 return FindColor(kColorTabText, kDefaultColorTabText);
277 case COLOR_BACKGROUND_TAB_TEXT:
278 return FindColor(kColorBackgroundTabText, kDefaultColorBackgroundTabText);
279 case COLOR_BOOKMARK_TEXT:
280 return FindColor(kColorBookmarkText, kDefaultColorBookmarkText);
281 case COLOR_NTP_BACKGROUND:
282 return (colors_.find(kColorNTPBackground) != colors_.end()) ?
283 colors_[kColorNTPBackground] :
284 kDefaultColorNTPBackground;
285 case COLOR_NTP_TEXT:
286 return FindColor(kColorNTPText, kDefaultColorNTPText);
287 case COLOR_NTP_LINK:
288 return FindColor(kColorNTPLink, kDefaultColorNTPLink);
289 case COLOR_NTP_SECTION:
290 return FindColor(kColorNTPSection, kDefaultColorNTPSection);
291 case COLOR_NTP_SECTION_TEXT:
292 return FindColor(kColorNTPSectionText, kDefaultColorNTPSectionText);
293 case COLOR_NTP_SECTION_LINK:
294 return FindColor(kColorNTPSectionLink, kDefaultColorNTPSectionLink);
295 case COLOR_CONTROL_BACKGROUND:
296 return FindColor(kColorControlBackground, kDefaultColorControlBackground);
297 case COLOR_BUTTON_BACKGROUND:
298 return FindColor(kColorButtonBackground, kDefaultColorButtonBackground);
299 default:
300 NOTREACHED() << "Unknown color requested";
301 }
302
303 // Return a debugging red color.
304 return 0xffff0000;
305 } 348 }
306 349
307 bool BrowserThemeProvider::GetDisplayProperty(int id, int* result) { 350 bool BrowserThemeProvider::GetDisplayProperty(int id, int* result) {
308 switch (id) { 351 switch (id) {
309 case NTP_BACKGROUND_ALIGNMENT: 352 case NTP_BACKGROUND_ALIGNMENT:
310 if (display_properties_.find(kDisplayPropertyNTPAlignment) != 353 if (display_properties_.find(kDisplayPropertyNTPAlignment) !=
311 display_properties_.end()) { 354 display_properties_.end()) {
312 *result = display_properties_[kDisplayPropertyNTPAlignment]; 355 *result = display_properties_[kDisplayPropertyNTPAlignment];
313 } else { 356 } else {
314 *result = kDefaultDisplayPropertyNTPAlignment; 357 *result = kDefaultDisplayPropertyNTPAlignment;
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
961 SetTintData(prefs->GetMutableDictionary(prefs::kCurrentThemeTints)); 1004 SetTintData(prefs->GetMutableDictionary(prefs::kCurrentThemeTints));
962 SetDisplayPropertyData( 1005 SetDisplayPropertyData(
963 prefs->GetMutableDictionary(prefs::kCurrentThemeDisplayProperties)); 1006 prefs->GetMutableDictionary(prefs::kCurrentThemeDisplayProperties));
964 GenerateFrameColors(); 1007 GenerateFrameColors();
965 GenerateFrameImages(); 1008 GenerateFrameImages();
966 GenerateTabImages(); 1009 GenerateTabImages();
967 UserMetrics::RecordAction(L"Themes_loaded", profile_); 1010 UserMetrics::RecordAction(L"Themes_loaded", profile_);
968 } 1011 }
969 } 1012 }
970 1013
971 SkColor BrowserThemeProvider::FindColor(const char* id,
972 SkColor default_color) {
973 return (colors_.find(id) != colors_.end()) ? colors_[id] : default_color;
974 }
975
976 void BrowserThemeProvider::ClearCaches() { 1014 void BrowserThemeProvider::ClearCaches() {
977 FreePlatformCaches(); 1015 FreePlatformCaches();
978 for (ImageCache::iterator i = image_cache_.begin(); 1016 for (ImageCache::iterator i = image_cache_.begin();
979 i != image_cache_.end(); i++) { 1017 i != image_cache_.end(); i++) {
980 delete i->second; 1018 delete i->second;
981 } 1019 }
982 image_cache_.clear(); 1020 image_cache_.clear();
983 } 1021 }
984 1022
985 #if defined(TOOLKIT_VIEWS) 1023 #if defined(TOOLKIT_VIEWS)
986 void BrowserThemeProvider::FreePlatformCaches() { 1024 void BrowserThemeProvider::FreePlatformCaches() {
987 // Views (Skia) has no platform image cache to clear. 1025 // Views (Skia) has no platform image cache to clear.
988 } 1026 }
989 #endif 1027 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698