summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/bookmark_utils_gtk.cc
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-13 23:23:08 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-13 23:23:08 +0000
commit5fdafb2f68bd61ef92d10194402348d1e5839015 (patch)
treefb8583216c733e2a2218501646cf8c72fec35bb1 /chrome/browser/gtk/bookmark_utils_gtk.cc
parent0735266658f996210b6f43142ce7f4c55f47ae13 (diff)
downloadchromium_src-5fdafb2f68bd61ef92d10194402348d1e5839015.zip
chromium_src-5fdafb2f68bd61ef92d10194402348d1e5839015.tar.gz
chromium_src-5fdafb2f68bd61ef92d10194402348d1e5839015.tar.bz2
GTK Themes: Refactored to use notifications instead of manual plumbing.
- Removes large amounts of plumbing because: - All GtkChromeButtons are constructed from GtkThemeProvider which keeps a reference to all live buttons and sends them theme change notifications. - CustomDrawButtons now subscribe themselves to the BROWSER_THEME_CHANGED notification; this gets rid of a LOT of plubming. - Removes the GtkThemeProperties struct; just pass the theme provider around. - Move all the constants from the themes namespace to class statics, per tony's suggestion Review URL: http://codereview.chromium.org/149547 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20561 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/bookmark_utils_gtk.cc')
-rw-r--r--chrome/browser/gtk/bookmark_utils_gtk.cc21
1 files changed, 9 insertions, 12 deletions
diff --git a/chrome/browser/gtk/bookmark_utils_gtk.cc b/chrome/browser/gtk/bookmark_utils_gtk.cc
index b388dfc..b83553f 100644
--- a/chrome/browser/gtk/bookmark_utils_gtk.cc
+++ b/chrome/browser/gtk/bookmark_utils_gtk.cc
@@ -86,10 +86,10 @@ GdkPixbuf* GetPixbufForNode(const BookmarkNode* node, BookmarkModel* model) {
GtkWidget* GetDragRepresentation(const BookmarkNode* node,
BookmarkModel* model,
- GtkThemeProperties* properties) {
+ GtkThemeProvider* provider) {
// Build a windowed representation for our button.
GtkWidget* window = gtk_window_new(GTK_WINDOW_POPUP);
- if (!properties->use_gtk_rendering) {
+ if (!provider->UseGtkTheme()) {
// TODO(erg): Theme wise, which color should I be picking here?
// COLOR_BUTTON_BACKGROUND doesn't match the default theme!
gtk_widget_modify_bg(window, GTK_STATE_NORMAL, &kBackgroundColor);
@@ -101,9 +101,9 @@ GtkWidget* GetDragRepresentation(const BookmarkNode* node,
gtk_container_add(GTK_CONTAINER(window), frame);
gtk_widget_show(frame);
- GtkWidget* floating_button = gtk_chrome_button_new();
+ GtkWidget* floating_button = provider->BuildChromeButton();
bookmark_utils::ConfigureButtonForNode(node, model, floating_button,
- properties);
+ provider);
gtk_container_add(GTK_CONTAINER(frame), floating_button);
gtk_widget_show(floating_button);
@@ -111,7 +111,7 @@ GtkWidget* GetDragRepresentation(const BookmarkNode* node,
}
void ConfigureButtonForNode(const BookmarkNode* node, BookmarkModel* model,
- GtkWidget* button, GtkThemeProperties* properties) {
+ GtkWidget* button, GtkThemeProvider* provider) {
GtkWidget* former_child = gtk_bin_get_child(GTK_BIN(button));
if (former_child)
gtk_container_remove(GTK_CONTAINER(button), former_child);
@@ -141,13 +141,10 @@ void ConfigureButtonForNode(const BookmarkNode* node, BookmarkModel* model,
gtk_container_add(GTK_CONTAINER(alignment), box);
gtk_container_add(GTK_CONTAINER(button), alignment);
- SetButtonTextColors(label, properties);
+ SetButtonTextColors(label, provider);
g_object_set_data(G_OBJECT(button), bookmark_utils::kBookmarkNode,
AsVoid(node));
- gtk_chrome_button_set_use_gtk_rendering(GTK_CHROME_BUTTON(button),
- properties->use_gtk_rendering);
-
gtk_widget_show_all(alignment);
}
@@ -162,14 +159,14 @@ const BookmarkNode* BookmarkNodeForWidget(GtkWidget* widget) {
g_object_get_data(G_OBJECT(widget), bookmark_utils::kBookmarkNode));
}
-void SetButtonTextColors(GtkWidget* label, GtkThemeProperties* properties) {
- if (properties->use_gtk_rendering) {
+void SetButtonTextColors(GtkWidget* label, GtkThemeProvider* provider) {
+ if (provider->UseGtkTheme()) {
gtk_widget_modify_fg(label, GTK_STATE_NORMAL, NULL);
gtk_widget_modify_fg(label, GTK_STATE_ACTIVE, NULL);
gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, NULL);
gtk_widget_modify_fg(label, GTK_STATE_INSENSITIVE, NULL);
} else {
- GdkColor color = properties->GetGdkColor(
+ GdkColor color = provider->GetGdkColor(
BrowserThemeProvider::COLOR_BOOKMARK_TEXT);
gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &color);
gtk_widget_modify_fg(label, GTK_STATE_ACTIVE, &color);