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

Side by Side Diff: chrome/browser/ui/libgtk2ui/gtk2_ui.cc

Issue 12230026: linux: Both gtk and the aura port should set the icon theme name. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes for thestig Created 7 years, 10 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
« no previous file with comments | « chrome/browser/ui/libgtk2ui/gtk2_ui.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) 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/libgtk2ui/gtk2_ui.h" 5 #include "chrome/browser/ui/libgtk2ui/gtk2_ui.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/nix/mime_util_xdg.h"
12 #include "base/stl_util.h" 13 #include "base/stl_util.h"
13 #include "chrome/browser/themes/theme_service.h" 14 #include "chrome/browser/themes/theme_service.h"
14 #include "chrome/browser/ui/libgtk2ui/chrome_gtk_frame.h" 15 #include "chrome/browser/ui/libgtk2ui/chrome_gtk_frame.h"
15 #include "chrome/browser/ui/libgtk2ui/gtk2_util.h" 16 #include "chrome/browser/ui/libgtk2ui/gtk2_util.h"
16 #include "chrome/browser/ui/libgtk2ui/select_file_dialog_impl.h" 17 #include "chrome/browser/ui/libgtk2ui/select_file_dialog_impl.h"
17 #include "chrome/browser/ui/libgtk2ui/skia_utils_gtk2.h" 18 #include "chrome/browser/ui/libgtk2ui/skia_utils_gtk2.h"
18 #include "grit/theme_resources.h" 19 #include "grit/theme_resources.h"
19 #include "grit/ui_resources.h" 20 #include "grit/ui_resources.h"
20 #include "third_party/skia/include/core/SkBitmap.h" 21 #include "third_party/skia/include/core/SkBitmap.h"
21 #include "third_party/skia/include/core/SkCanvas.h" 22 #include "third_party/skia/include/core/SkCanvas.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 // Only realized widgets receive style-set notifications, which we need to 285 // Only realized widgets receive style-set notifications, which we need to
285 // broadcast new theme images and colors. Only realized widgets have style 286 // broadcast new theme images and colors. Only realized widgets have style
286 // properties, too, which we query for some colors. 287 // properties, too, which we query for some colors.
287 gtk_widget_realize(fake_frame_); 288 gtk_widget_realize(fake_frame_);
288 gtk_widget_realize(fake_window_); 289 gtk_widget_realize(fake_window_);
289 // TODO: Also listen for "style-set" on the fake frame. 290 // TODO: Also listen for "style-set" on the fake frame.
290 291
291 // TODO(erg): Be lazy about generating this data and connect it to the 292 // TODO(erg): Be lazy about generating this data and connect it to the
292 // style-set signal handler. 293 // style-set signal handler.
293 LoadGtkValues(); 294 LoadGtkValues();
295 SetXDGIconTheme();
294 } 296 }
295 297
296 Gtk2UI::~Gtk2UI() { 298 Gtk2UI::~Gtk2UI() {
297 gtk_widget_destroy(fake_window_); 299 gtk_widget_destroy(fake_window_);
298 gtk_widget_destroy(fake_frame_); 300 gtk_widget_destroy(fake_frame_);
299 fake_label_.Destroy(); 301 fake_label_.Destroy();
300 fake_entry_.Destroy(); 302 fake_entry_.Destroy();
301 303
302 ClearAllThemeData(); 304 ClearAllThemeData();
303 } 305 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 if (theme_thumb_active) 433 if (theme_thumb_active)
432 *thumb_active_color = *theme_thumb_active; 434 *thumb_active_color = *theme_thumb_active;
433 435
434 if (theme_thumb_inactive) 436 if (theme_thumb_inactive)
435 *thumb_inactive_color = *theme_thumb_inactive; 437 *thumb_inactive_color = *theme_thumb_inactive;
436 438
437 if (theme_trough_color) 439 if (theme_trough_color)
438 *track_color = *theme_trough_color; 440 *track_color = *theme_trough_color;
439 } 441 }
440 442
443 void Gtk2UI::SetXDGIconTheme() {
444 gchar* gtk_theme_name;
445 g_object_get(gtk_settings_get_default(),
446 "gtk-icon-theme-name",
447 &gtk_theme_name, NULL);
448 base::nix::SetIconThemeName(gtk_theme_name);
449 g_free(gtk_theme_name);
450 }
451
441 void Gtk2UI::LoadGtkValues() { 452 void Gtk2UI::LoadGtkValues() {
442 // TODO(erg): GtkThemeService had a comment here about having to muck with 453 // TODO(erg): GtkThemeService had a comment here about having to muck with
443 // the raw Prefs object to remove prefs::kCurrentThemeImages or else we'd 454 // the raw Prefs object to remove prefs::kCurrentThemeImages or else we'd
444 // regress startup time. Figure out how to do that when we can't access the 455 // regress startup time. Figure out how to do that when we can't access the
445 // prefs system from here. 456 // prefs system from here.
446 457
447 GtkStyle* frame_style = gtk_rc_get_style(fake_frame_); 458 GtkStyle* frame_style = gtk_rc_get_style(fake_frame_);
448 459
449 GtkStyle* window_style = gtk_rc_get_style(fake_window_); 460 GtkStyle* window_style = gtk_rc_get_style(fake_window_);
450 SetThemeColorFromGtk(ThemeService::COLOR_CONTROL_BACKGROUND, 461 SetThemeColorFromGtk(ThemeService::COLOR_CONTROL_BACKGROUND,
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 969
959 void Gtk2UI::ClearAllThemeData() { 970 void Gtk2UI::ClearAllThemeData() {
960 STLDeleteValues(&gtk_images_); 971 STLDeleteValues(&gtk_images_);
961 } 972 }
962 973
963 } // namespace libgtk2ui 974 } // namespace libgtk2ui
964 975
965 ui::LinuxUI* BuildGtk2UI() { 976 ui::LinuxUI* BuildGtk2UI() {
966 return new libgtk2ui::Gtk2UI; 977 return new libgtk2ui::Gtk2UI;
967 } 978 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/libgtk2ui/gtk2_ui.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698