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

Side by Side Diff: chrome/browser/gtk/gtk_theme_provider.cc

Issue 1117008: Set the details field of the BROWSER_THEME_CHANGED notification to (Closed)
Patch Set: Created 10 years, 9 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
« no previous file with comments | « chrome/browser/gtk/gtk_theme_provider.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/gtk/gtk_theme_provider.h" 5 #include "chrome/browser/gtk/gtk_theme_provider.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "app/resource_bundle.h" 9 #include "app/resource_bundle.h"
10 #include "base/stl_util-inl.h" 10 #include "base/stl_util-inl.h"
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 void GtkThemeProvider::UseDefaultTheme() { 188 void GtkThemeProvider::UseDefaultTheme() {
189 profile()->GetPrefs()->SetBoolean(prefs::kUsesSystemTheme, false); 189 profile()->GetPrefs()->SetBoolean(prefs::kUsesSystemTheme, false);
190 LoadDefaultValues(); 190 LoadDefaultValues();
191 BrowserThemeProvider::UseDefaultTheme(); 191 BrowserThemeProvider::UseDefaultTheme();
192 } 192 }
193 193
194 void GtkThemeProvider::SetNativeTheme() { 194 void GtkThemeProvider::SetNativeTheme() {
195 profile()->GetPrefs()->SetBoolean(prefs::kUsesSystemTheme, true); 195 profile()->GetPrefs()->SetBoolean(prefs::kUsesSystemTheme, true);
196 ClearAllThemeData(); 196 ClearAllThemeData();
197 LoadGtkValues(); 197 LoadGtkValues();
198 NotifyThemeChanged(); 198 NotifyThemeChanged(NULL);
199 } 199 }
200 200
201 void GtkThemeProvider::Observe(NotificationType type, 201 void GtkThemeProvider::Observe(NotificationType type,
202 const NotificationSource& source, 202 const NotificationSource& source,
203 const NotificationDetails& details) { 203 const NotificationDetails& details) {
204 if ((type == NotificationType::PREF_CHANGED) && 204 if ((type == NotificationType::PREF_CHANGED) &&
205 (*Details<std::wstring>(details).ptr() == prefs::kUsesSystemTheme)) 205 (*Details<std::wstring>(details).ptr() == prefs::kUsesSystemTheme))
206 use_gtk_ = profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme); 206 use_gtk_ = profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme);
207 } 207 }
208 208
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 388
389 void GtkThemeProvider::LoadThemePrefs() { 389 void GtkThemeProvider::LoadThemePrefs() {
390 if (use_gtk_) { 390 if (use_gtk_) {
391 LoadGtkValues(); 391 LoadGtkValues();
392 } else { 392 } else {
393 LoadDefaultValues(); 393 LoadDefaultValues();
394 BrowserThemeProvider::LoadThemePrefs(); 394 BrowserThemeProvider::LoadThemePrefs();
395 } 395 }
396 } 396 }
397 397
398 void GtkThemeProvider::NotifyThemeChanged() { 398 void GtkThemeProvider::NotifyThemeChanged(Extension* extension) {
399 BrowserThemeProvider::NotifyThemeChanged(); 399 BrowserThemeProvider::NotifyThemeChanged(extension);
400 400
401 // Notify all GtkChromeButtons of their new rendering mode: 401 // Notify all GtkChromeButtons of their new rendering mode:
402 for (std::vector<GtkWidget*>::iterator it = chrome_buttons_.begin(); 402 for (std::vector<GtkWidget*>::iterator it = chrome_buttons_.begin();
403 it != chrome_buttons_.end(); ++it) { 403 it != chrome_buttons_.end(); ++it) {
404 gtk_chrome_button_set_use_gtk_rendering( 404 gtk_chrome_button_set_use_gtk_rendering(
405 GTK_CHROME_BUTTON(*it), use_gtk_); 405 GTK_CHROME_BUTTON(*it), use_gtk_);
406 } 406 }
407 } 407 }
408 408
409 void GtkThemeProvider::FreePlatformCaches() { 409 void GtkThemeProvider::FreePlatformCaches() {
410 BrowserThemeProvider::FreePlatformCaches(); 410 BrowserThemeProvider::FreePlatformCaches();
411 FreePerDisplaySurfaces(); 411 FreePerDisplaySurfaces();
412 STLDeleteValues(&gtk_images_); 412 STLDeleteValues(&gtk_images_);
413 } 413 }
414 414
415 // static 415 // static
416 void GtkThemeProvider::OnStyleSet(GtkWidget* widget, 416 void GtkThemeProvider::OnStyleSet(GtkWidget* widget,
417 GtkStyle* previous_style, 417 GtkStyle* previous_style,
418 GtkThemeProvider* provider) { 418 GtkThemeProvider* provider) {
419 GdkPixbuf* default_folder_icon = default_folder_icon_; 419 GdkPixbuf* default_folder_icon = default_folder_icon_;
420 GdkPixbuf* default_bookmark_icon = default_bookmark_icon_; 420 GdkPixbuf* default_bookmark_icon = default_bookmark_icon_;
421 default_folder_icon_ = NULL; 421 default_folder_icon_ = NULL;
422 default_bookmark_icon_ = NULL; 422 default_bookmark_icon_ = NULL;
423 423
424 if (provider->profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme)) { 424 if (provider->profile()->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme)) {
425 provider->ClearAllThemeData(); 425 provider->ClearAllThemeData();
426 provider->LoadGtkValues(); 426 provider->LoadGtkValues();
427 provider->NotifyThemeChanged(); 427 provider->NotifyThemeChanged(NULL);
428 } 428 }
429 429
430 // Free the old icons only after the theme change notification has gone 430 // Free the old icons only after the theme change notification has gone
431 // through. 431 // through.
432 if (default_folder_icon) 432 if (default_folder_icon)
433 g_object_unref(default_folder_icon); 433 g_object_unref(default_folder_icon);
434 if (default_bookmark_icon) 434 if (default_bookmark_icon)
435 g_object_unref(default_bookmark_icon); 435 g_object_unref(default_bookmark_icon);
436 } 436 }
437 437
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 } 730 }
731 731
732 void GtkThemeProvider::OnDestroyChromeButton(GtkWidget* button, 732 void GtkThemeProvider::OnDestroyChromeButton(GtkWidget* button,
733 GtkThemeProvider* provider) { 733 GtkThemeProvider* provider) {
734 std::vector<GtkWidget*>::iterator it = 734 std::vector<GtkWidget*>::iterator it =
735 find(provider->chrome_buttons_.begin(), provider->chrome_buttons_.end(), 735 find(provider->chrome_buttons_.begin(), provider->chrome_buttons_.end(),
736 button); 736 button);
737 if (it != provider->chrome_buttons_.end()) 737 if (it != provider->chrome_buttons_.end())
738 provider->chrome_buttons_.erase(it); 738 provider->chrome_buttons_.erase(it);
739 } 739 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/gtk_theme_provider.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698