| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/gtk/gtk_theme_service.h" | 5 #include "chrome/browser/ui/gtk/gtk_theme_service.h" |
| 6 | 6 |
| 7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 case base::nix::DESKTOP_ENVIRONMENT_KDE3: | 623 case base::nix::DESKTOP_ENVIRONMENT_KDE3: |
| 624 case base::nix::DESKTOP_ENVIRONMENT_KDE4: | 624 case base::nix::DESKTOP_ENVIRONMENT_KDE4: |
| 625 case base::nix::DESKTOP_ENVIRONMENT_OTHER: | 625 case base::nix::DESKTOP_ENVIRONMENT_OTHER: |
| 626 return false; | 626 return false; |
| 627 } | 627 } |
| 628 // Unless GetDesktopEnvironment() badly misbehaves, this should never happen. | 628 // Unless GetDesktopEnvironment() badly misbehaves, this should never happen. |
| 629 NOTREACHED(); | 629 NOTREACHED(); |
| 630 return false; | 630 return false; |
| 631 } | 631 } |
| 632 | 632 |
| 633 void GtkThemeService::ClearAllThemeData() { | |
| 634 colors_.clear(); | |
| 635 tints_.clear(); | |
| 636 | |
| 637 ThemeService::ClearAllThemeData(); | |
| 638 } | |
| 639 | |
| 640 void GtkThemeService::LoadThemePrefs() { | 633 void GtkThemeService::LoadThemePrefs() { |
| 641 // Initialize the values sent to webkit with the default values. | 634 // Initialize the values sent to webkit with the default values. |
| 642 // ThemeService::LoadThemePrefs() will replace them with values for the native | 635 // ThemeService::LoadThemePrefs() will replace them with values for the native |
| 643 // gtk theme if necessary. | 636 // gtk theme if necessary. |
| 644 LoadDefaultValues(); | 637 LoadDefaultValues(); |
| 645 | 638 |
| 646 // This takes care of calling SetNativeTheme() if necessary. | 639 // This takes care of calling SetNativeTheme() if necessary. |
| 647 ThemeService::LoadThemePrefs(); | 640 ThemeService::LoadThemePrefs(); |
| 648 | 641 |
| 649 SetXDGIconTheme(); | 642 SetXDGIconTheme(); |
| 650 RebuildMenuIconSets(); | 643 RebuildMenuIconSets(); |
| 651 } | 644 } |
| 652 | 645 |
| 653 void GtkThemeService::NotifyThemeChanged() { | 646 void GtkThemeService::NotifyThemeChanged() { |
| 647 if (!ready_) |
| 648 return; |
| 649 |
| 654 ThemeService::NotifyThemeChanged(); | 650 ThemeService::NotifyThemeChanged(); |
| 655 | 651 |
| 656 // Notify all GtkChromeButtons of their new rendering mode: | 652 // Notify all GtkChromeButtons of their new rendering mode: |
| 657 for (std::vector<GtkWidget*>::iterator it = chrome_buttons_.begin(); | 653 for (std::vector<GtkWidget*>::iterator it = chrome_buttons_.begin(); |
| 658 it != chrome_buttons_.end(); ++it) { | 654 it != chrome_buttons_.end(); ++it) { |
| 659 gtk_chrome_button_set_use_gtk_rendering( | 655 gtk_chrome_button_set_use_gtk_rendering( |
| 660 GTK_CHROME_BUTTON(*it), use_gtk_); | 656 GTK_CHROME_BUTTON(*it), use_gtk_); |
| 661 } | 657 } |
| 662 | 658 |
| 663 for (std::vector<GtkWidget*>::iterator it = link_buttons_.begin(); | 659 for (std::vector<GtkWidget*>::iterator it = link_buttons_.begin(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 676 Browser* browser = *it; | 672 Browser* browser = *it; |
| 677 if (!browser->window()) | 673 if (!browser->window()) |
| 678 continue; | 674 continue; |
| 679 GtkWindow* window = browser->window()->GetNativeWindow(); | 675 GtkWindow* window = browser->window()->GetNativeWindow(); |
| 680 gtk_util::SetDefaultWindowIcon(window); | 676 gtk_util::SetDefaultWindowIcon(window); |
| 681 gtk_util::SetWindowIcon(window, browser->profile()); | 677 gtk_util::SetWindowIcon(window, browser->profile()); |
| 682 } | 678 } |
| 683 } | 679 } |
| 684 | 680 |
| 685 void GtkThemeService::FreePlatformCaches() { | 681 void GtkThemeService::FreePlatformCaches() { |
| 682 colors_.clear(); |
| 683 tints_.clear(); |
| 686 ThemeService::FreePlatformCaches(); | 684 ThemeService::FreePlatformCaches(); |
| 687 STLDeleteValues(>k_images_); | 685 STLDeleteValues(>k_images_); |
| 688 } | 686 } |
| 689 | 687 |
| 690 void GtkThemeService::OnStyleSet(GtkWidget* widget, | 688 void GtkThemeService::OnStyleSet(GtkWidget* widget, |
| 691 GtkStyle* previous_style) { | 689 GtkStyle* previous_style) { |
| 692 default_folder_icon_.Get() = gfx::Image(); | 690 default_folder_icon_.Get() = gfx::Image(); |
| 693 default_bookmark_icon_.Get() = gfx::Image(); | 691 default_bookmark_icon_.Get() = gfx::Image(); |
| 694 | 692 |
| 695 if (profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme)) { | 693 if (profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme)) { |
| (...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1173 cairo_stroke(cr); | 1171 cairo_stroke(cr); |
| 1174 cairo_destroy(cr); | 1172 cairo_destroy(cr); |
| 1175 cairo_pattern_destroy(pattern); | 1173 cairo_pattern_destroy(pattern); |
| 1176 | 1174 |
| 1177 return TRUE; | 1175 return TRUE; |
| 1178 } | 1176 } |
| 1179 | 1177 |
| 1180 void GtkThemeService::OnUsesSystemThemeChanged() { | 1178 void GtkThemeService::OnUsesSystemThemeChanged() { |
| 1181 use_gtk_ = profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme); | 1179 use_gtk_ = profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme); |
| 1182 } | 1180 } |
| OLD | NEW |