Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/themes/browser_theme_provider.h" | 5 #include "chrome/browser/themes/browser_theme_provider.h" |
| 6 | 6 |
| 7 #include "base/string_split.h" | 7 #include "base/string_split.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 28 const char* BrowserThemeProvider::kAlignmentBottom = "bottom"; | 28 const char* BrowserThemeProvider::kAlignmentBottom = "bottom"; |
| 29 const char* BrowserThemeProvider::kAlignmentLeft = "left"; | 29 const char* BrowserThemeProvider::kAlignmentLeft = "left"; |
| 30 const char* BrowserThemeProvider::kAlignmentRight = "right"; | 30 const char* BrowserThemeProvider::kAlignmentRight = "right"; |
| 31 | 31 |
| 32 // Strings used in background tiling repetition properties. | 32 // Strings used in background tiling repetition properties. |
| 33 const char* BrowserThemeProvider::kTilingNoRepeat = "no-repeat"; | 33 const char* BrowserThemeProvider::kTilingNoRepeat = "no-repeat"; |
| 34 const char* BrowserThemeProvider::kTilingRepeatX = "repeat-x"; | 34 const char* BrowserThemeProvider::kTilingRepeatX = "repeat-x"; |
| 35 const char* BrowserThemeProvider::kTilingRepeatY = "repeat-y"; | 35 const char* BrowserThemeProvider::kTilingRepeatY = "repeat-y"; |
| 36 const char* BrowserThemeProvider::kTilingRepeat = "repeat"; | 36 const char* BrowserThemeProvider::kTilingRepeat = "repeat"; |
| 37 | 37 |
| 38 // Saved default values. | 38 // The default theme if we haven't installed a theme yet or if we've clicked |
| 39 // the "Use Classic" button. | |
| 39 const char* BrowserThemeProvider::kDefaultThemeID = ""; | 40 const char* BrowserThemeProvider::kDefaultThemeID = ""; |
| 40 | 41 |
| 41 namespace { | 42 namespace { |
| 42 | 43 |
| 44 // The default theme if we've gone to the theme gallery and installed the | |
| 45 // "Default" theme. We have to detect this case specifically. (By the time we | |
| 46 // realize we've installed the default theme, we already have an extension | |
| 47 // unpacked on the filesystem.) | |
| 48 const char* kDefatulThemeGalleryID = "hkacjpbfdknhflllbcmjibkdeoafencn"; | |
|
Miranda Callahan
2011/02/17 21:41:46
s/fatul/fault ;-)
| |
| 49 | |
| 43 SkColor TintForUnderline(SkColor input) { | 50 SkColor TintForUnderline(SkColor input) { |
| 44 return SkColorSetA(input, SkColorGetA(input) / 3); | 51 return SkColorSetA(input, SkColorGetA(input) / 3); |
| 45 } | 52 } |
| 46 | 53 |
| 47 SkColor IncreaseLightness(SkColor color, double percent) { | 54 SkColor IncreaseLightness(SkColor color, double percent) { |
| 48 color_utils::HSL result; | 55 color_utils::HSL result; |
| 49 color_utils::SkColorToHSL(color, &result); | 56 color_utils::SkColorToHSL(color, &result); |
| 50 result.l += (1 - result.l) * percent; | 57 result.l += (1 - result.l) * percent; |
| 51 return color_utils::HSLToSkColor(result, SkColorGetA(color)); | 58 return color_utils::HSLToSkColor(result, SkColorGetA(color)); |
| 52 } | 59 } |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 324 ClearAllThemeData(); | 331 ClearAllThemeData(); |
| 325 NotifyThemeChanged(NULL); | 332 NotifyThemeChanged(NULL); |
| 326 UserMetrics::RecordAction(UserMetricsAction("Themes_Reset"), profile_); | 333 UserMetrics::RecordAction(UserMetricsAction("Themes_Reset"), profile_); |
| 327 } | 334 } |
| 328 | 335 |
| 329 void BrowserThemeProvider::SetNativeTheme() { | 336 void BrowserThemeProvider::SetNativeTheme() { |
| 330 UseDefaultTheme(); | 337 UseDefaultTheme(); |
| 331 } | 338 } |
| 332 | 339 |
| 333 bool BrowserThemeProvider::UsingDefaultTheme() { | 340 bool BrowserThemeProvider::UsingDefaultTheme() { |
| 334 return GetThemeID() == BrowserThemeProvider::kDefaultThemeID; | 341 std::string id = GetThemeID(); |
| 342 return id == BrowserThemeProvider::kDefaultThemeID || | |
| 343 id == kDefatulThemeGalleryID; | |
|
Miranda Callahan
2011/02/17 21:41:46
I actually kind of like the word "Defatul," but st
Evan Stade
2011/02/17 22:13:17
I wonder, how do you pronounce it?
| |
| 335 } | 344 } |
| 336 | 345 |
| 337 std::string BrowserThemeProvider::GetThemeID() const { | 346 std::string BrowserThemeProvider::GetThemeID() const { |
| 338 return profile_->GetPrefs()->GetString(prefs::kCurrentThemeID); | 347 return profile_->GetPrefs()->GetString(prefs::kCurrentThemeID); |
| 339 } | 348 } |
| 340 | 349 |
| 341 // static | 350 // static |
| 342 std::string BrowserThemeProvider::AlignmentToString(int alignment) { | 351 std::string BrowserThemeProvider::AlignmentToString(int alignment) { |
| 343 // Convert from an AlignmentProperty back into a string. | 352 // Convert from an AlignmentProperty back into a string. |
| 344 std::string vertical_string; | 353 std::string vertical_string; |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 626 void BrowserThemeProvider::OnInfobarDisplayed() { | 635 void BrowserThemeProvider::OnInfobarDisplayed() { |
| 627 number_of_infobars_++; | 636 number_of_infobars_++; |
| 628 } | 637 } |
| 629 | 638 |
| 630 void BrowserThemeProvider::OnInfobarDestroyed() { | 639 void BrowserThemeProvider::OnInfobarDestroyed() { |
| 631 number_of_infobars_--; | 640 number_of_infobars_--; |
| 632 | 641 |
| 633 if (number_of_infobars_ == 0) | 642 if (number_of_infobars_ == 0) |
| 634 RemoveUnusedThemes(); | 643 RemoveUnusedThemes(); |
| 635 } | 644 } |
| OLD | NEW |