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

Unified Diff: chrome/browser/gtk/browser_toolbar_gtk.cc

Issue 150176: GTK: First draft of using native themes, partially based on evan's CL 118358. (Closed)
Patch Set: And the codereview tool is back. Created 11 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/gtk/browser_toolbar_gtk.cc
diff --git a/chrome/browser/gtk/browser_toolbar_gtk.cc b/chrome/browser/gtk/browser_toolbar_gtk.cc
index d7fddfd7d023243e3adff1bd19d7fac0164e0471..8340cef2b691e9107d488c5d8704a4eadee34133 100644
--- a/chrome/browser/gtk/browser_toolbar_gtk.cc
+++ b/chrome/browser/gtk/browser_toolbar_gtk.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/gtk/go_button_gtk.h"
#include "chrome/browser/gtk/gtk_chrome_button.h"
#include "chrome/browser/gtk/gtk_dnd_util.h"
+#include "chrome/browser/gtk/gtk_theme_provider.h"
#include "chrome/browser/gtk/location_bar_view_gtk.h"
#include "chrome/browser/gtk/nine_box.h"
#include "chrome/browser/gtk/standard_menus.h"
@@ -124,10 +125,12 @@ void BrowserToolbarGtk::Init(Profile* profile,
gtk_box_pack_start(GTK_BOX(toolbar_), back_forward_hbox_, FALSE, FALSE, 0);
reload_.reset(BuildToolbarButton(IDR_RELOAD, IDR_RELOAD_P, IDR_RELOAD_H, 0,
- l10n_util::GetStringUTF8(IDS_TOOLTIP_RELOAD)));
+ l10n_util::GetStringUTF8(IDS_TOOLTIP_RELOAD),
+ GTK_STOCK_REFRESH));
home_.reset(BuildToolbarButton(IDR_HOME, IDR_HOME_P, IDR_HOME_H, 0,
- l10n_util::GetStringUTF8(IDS_TOOLTIP_HOME)));
+ l10n_util::GetStringUTF8(IDS_TOOLTIP_HOME),
+ GTK_STOCK_HOME));
gtk_util::SetButtonTriggersNavigation(home_->widget());
SetUpDragForHomeButton();
@@ -162,6 +165,9 @@ void BrowserToolbarGtk::Init(Profile* profile,
gtk_box_pack_start(GTK_BOX(toolbar_), menus_hbox_, FALSE, FALSE, 0);
+ // Force all the CustomDrawButtons to load the correct rendering style.
+ UserChangedTheme();
+
gtk_widget_show_all(toolbar_);
if (show_home_button_.GetValue()) {
@@ -274,6 +280,19 @@ void BrowserToolbarGtk::UpdateTabContents(TabContents* contents,
location_bar_->Update(should_restore_state ? contents : NULL);
}
+void BrowserToolbarGtk::UserChangedTheme() {
+ bool use_gtk = GtkThemeProvider::UseSystemThemeGraphics(profile_);
+ back_->SetUseSystemTheme(use_gtk);
+ forward_->SetUseSystemTheme(use_gtk);
+ reload_->SetUseSystemTheme(use_gtk);
+ home_->SetUseSystemTheme(use_gtk);
+
+ gtk_chrome_button_set_use_gtk_rendering(
+ GTK_CHROME_BUTTON(page_menu_button_.get()), use_gtk);
+ gtk_chrome_button_set_use_gtk_rendering(
+ GTK_CHROME_BUTTON(app_menu_button_.get()), use_gtk);
+}
+
gfx::Rect BrowserToolbarGtk::GetPopupBounds() const {
GtkWidget* star = star_->widget();
GtkWidget* go = go_->widget();
@@ -297,9 +316,9 @@ gfx::Rect BrowserToolbarGtk::GetPopupBounds() const {
CustomDrawButton* BrowserToolbarGtk::BuildToolbarButton(
int normal_id, int active_id, int highlight_id, int depressed_id,
- const std::string& localized_tooltip) {
+ const std::string& localized_tooltip, const char* stock_id) {
CustomDrawButton* button = new CustomDrawButton(normal_id, active_id,
- highlight_id, depressed_id);
+ highlight_id, depressed_id, stock_id);
gtk_widget_set_tooltip_text(button->widget(),
localized_tooltip.c_str());
@@ -332,7 +351,8 @@ GtkWidget* BrowserToolbarGtk::BuildToolbarMenuButton(
owner->Own(button);
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- gtk_container_set_border_width(GTK_CONTAINER(button), 2);
+ if (!GtkThemeProvider::UseSystemThemeGraphics(profile_))
+ gtk_container_set_border_width(GTK_CONTAINER(button), 2);
gtk_container_add(GTK_CONTAINER(button),
gtk_image_new_from_pixbuf(rb.GetPixbufNamed(icon_id)));

Powered by Google App Engine
This is Rietveld 408576698