[balsa/gtk3] More GtkStock deprecation cleanup



commit 7a6a00c3461665a3cec47fc7b1b5ffd987871359
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Mon Jul 22 00:13:57 2013 -0400

    More GtkStock deprecation cleanup
    
        * src/balsa-app.c (balsa_stock_button_with_label):
        * src/balsa-icons.c (load_balsa_pixmap), (balsa_register_pixmaps),
        (balsa_register_pixbufs):
        * src/balsa-message.c (bm_header_tl_buttons):
        * src/balsa-mime-widget-crypto.c (balsa_mime_widget_crypto_frame):
        * src/main-window.c:

 ChangeLog                      |   11 ++++++
 src/balsa-app.c                |    4 ++-
 src/balsa-icons.c              |   70 ++++++++++++++++++++-------------------
 src/balsa-message.c            |   12 +------
 src/balsa-mime-widget-crypto.c |    9 +++--
 src/main-window.c              |    4 +-
 6 files changed, 59 insertions(+), 51 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index f736e5c..1a9c1df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2013-07-22  Peter Bloomfield
+
+       More GtkStock deprecation cleanup
+
+       * src/balsa-app.c (balsa_stock_button_with_label):
+       * src/balsa-icons.c (load_balsa_pixmap), (balsa_register_pixmaps),
+       (balsa_register_pixbufs):
+       * src/balsa-message.c (bm_header_tl_buttons):
+       * src/balsa-mime-widget-crypto.c (balsa_mime_widget_crypto_frame):
+       * src/main-window.c:
+
 2013-07-21  Peter Bloomfield
 
        * libbalsa/application-helpers.c (extract_accels_from_menu),
diff --git a/src/balsa-app.c b/src/balsa-app.c
index b9d501d..b38a202 100644
--- a/src/balsa-app.c
+++ b/src/balsa-app.c
@@ -23,6 +23,7 @@
 # include "config.h"
 #endif                          /* HAVE_CONFIG_H */
 #include "balsa-app.h"
+#include "balsa-icons.h"
 
 #include <string.h>
 #include <stdlib.h>
@@ -585,7 +586,8 @@ balsa_stock_button_with_label(const char *icon, const char *text)
 {
     GtkWidget *button;
     GtkWidget *pixmap =
-        gtk_image_new_from_icon_name(icon, GTK_ICON_SIZE_BUTTON);
+        gtk_image_new_from_icon_name(balsa_icon_id(icon),
+                                     GTK_ICON_SIZE_BUTTON);
     GtkWidget *align = gtk_alignment_new(0.5, 0.5, 0, 0);
     GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
 
diff --git a/src/balsa-icons.c b/src/balsa-icons.c
index 2cbf46b..f913564 100644
--- a/src/balsa-icons.c
+++ b/src/balsa-icons.c
@@ -30,10 +30,10 @@
 #include "mailbox.h"
 #include "address-view.h"
 
-#define ELEMENTS(x) (sizeof (x) / sizeof (x[0]))
-
 /* comment out the next line to suppress info about loading images */
-/* #define BICONS_VERBOSE */
+#if 0
+#define BICONS_VERBOSE
+#endif
 
 #ifdef BICONS_VERBOSE
 #  define BICONS_LOG(...)   g_message(__VA_ARGS__)
@@ -59,11 +59,9 @@ typedef struct {
 static GHashTable *balsa_icon_table;
 
 static void
-load_balsa_pixmap(GtkIconTheme *icon_theme, GtkIconFactory *factory, 
-                 const balsa_pixmap_t *bpixmap)
+load_balsa_pixmap(GtkIconTheme *icon_theme, const balsa_pixmap_t *bpixmap)
 {
     GdkPixbuf *pixbuf;
-    GtkIconSet *icon_set;
     GError *error = NULL;
     gint n, width, height;
     const gchar * use_id;
@@ -77,7 +75,6 @@ load_balsa_pixmap(GtkIconTheme *icon_theme, GtkIconFactory *factory,
         { "folder-drag-accept", "document-open"},
         { "folder", "folder"},
        { NULL, NULL } };
-    GtkSettings *settings;
 
     BICONS_LOG("loading icon %s (stock id %s)", bpixmap->name,
               bpixmap->stock_id);
@@ -99,12 +96,11 @@ load_balsa_pixmap(GtkIconTheme *icon_theme, GtkIconFactory *factory,
     } else
        use_id = bpixmap->stock_id;
 
+    BICONS_LOG("\tuse_id %s", use_id);
     g_hash_table_insert(balsa_icon_table, g_strdup(bpixmap->name),
                         g_strdup(use_id));
 
-    settings = gtk_settings_get_for_screen(gdk_screen_get_default());
-    if (!gtk_icon_size_lookup_for_settings(settings, bpixmap->sizes[0],
-                                           &width, &height)) {
+    if (!gtk_icon_size_lookup(bpixmap->sizes[0], &width, &height)) {
        BICONS_ERR("failed: could not look up default icon size %d",
                   bpixmap->sizes[0]);
        return;
@@ -119,14 +115,12 @@ load_balsa_pixmap(GtkIconTheme *icon_theme, GtkIconFactory *factory,
        return;
     }
     BICONS_LOG("\tloaded with size %d", width);
-    icon_set = gtk_icon_set_new_from_pixbuf(pixbuf);
     g_object_unref(pixbuf);
 
     for (n = 1;
         n < BALSA_PIXMAP_SIZES && bpixmap->sizes[n] > GTK_ICON_SIZE_INVALID;
         n++) {
-       if (gtk_icon_size_lookup_for_settings(settings, bpixmap->sizes[n],
-                                              &width, &height)) {
+       if (gtk_icon_size_lookup(bpixmap->sizes[n], &width, &height)) {
            pixbuf =
                gtk_icon_theme_load_icon(icon_theme, use_id, width,
                                         GTK_ICON_LOOKUP_USE_BUILTIN, &error);
@@ -135,22 +129,13 @@ load_balsa_pixmap(GtkIconTheme *icon_theme, GtkIconFactory *factory,
                           error->message);
                g_clear_error(&error);
            } else {
-               GtkIconSource *icon_source = gtk_icon_source_new();
-               
-               BICONS_LOG("\tloaded with size %d", width);
-               gtk_icon_source_set_pixbuf(icon_source, pixbuf);
-               g_object_unref(pixbuf);
-               gtk_icon_source_set_size(icon_source, bpixmap->sizes[n]);
-               gtk_icon_source_set_size_wildcarded(icon_source, FALSE);
-               gtk_icon_set_add_source(icon_set, icon_source);
-                gtk_icon_source_free(icon_source);
+                BICONS_LOG("\tloaded with size %d", width);
+                gtk_icon_theme_add_builtin_icon(use_id, bpixmap->sizes[n],
+                                                pixbuf);
            }
        } else
            BICONS_ERR("bad size %d", bpixmap->sizes[n]);
     }
-
-    gtk_icon_factory_add(factory, bpixmap->name, icon_set);
-    gtk_icon_set_unref(icon_set);
 }
 
 void
@@ -162,7 +147,7 @@ balsa_register_pixmaps(void)
          { GTK_ICON_SIZE_LARGE_TOOLBAR, GTK_ICON_SIZE_MENU } },
        { BALSA_PIXMAP_REPLY,           "mail-reply-sender",
          { GTK_ICON_SIZE_LARGE_TOOLBAR, GTK_ICON_SIZE_MENU } },
-       { BALSA_PIXMAP_REPLY_GROUP,     "stock_mail-reply-to-all", 
+       { BALSA_PIXMAP_REPLY_GROUP,     "stock_mail-reply-to-all",
          { GTK_ICON_SIZE_LARGE_TOOLBAR, GTK_ICON_SIZE_MENU } },
        { BALSA_PIXMAP_REQUEST_MDN,     "mail-reply-sender",
          { GTK_ICON_SIZE_LARGE_TOOLBAR, GTK_ICON_SIZE_MENU } },
@@ -267,7 +252,7 @@ balsa_register_pixmaps(void)
          { GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_INVALID } },
         { BALSA_PIXMAP_MBOX_DIR_CLOSED, "folder",
          { GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_INVALID } },
-       
+
        /* index icons (16x16) */
         { BALSA_PIXMAP_INFO_REPLIED,    "mail-replied",
          { GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_INVALID } },
@@ -282,17 +267,15 @@ balsa_register_pixmaps(void)
        };
 
     unsigned i;
-    GtkIconFactory *factory = gtk_icon_factory_new();
     GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
 
     balsa_icon_table =
         g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-    gtk_icon_factory_add_default(factory);
     gtk_icon_theme_append_search_path(icon_theme, BALSA_STD_PREFIX "/share/icons");
     gtk_icon_theme_append_search_path(icon_theme, BALSA_DATA_PREFIX);
 
-    for (i = 0; i < ELEMENTS(balsa_icons); i++)
-       load_balsa_pixmap(icon_theme, factory, balsa_icons + i);
+    for (i = 0; i < G_N_ELEMENTS(balsa_icons); i++)
+       load_balsa_pixmap(icon_theme, balsa_icons + i);
 }
 
 void
@@ -332,10 +315,29 @@ balsa_register_pixbufs(GtkWidget * widget)
         libbalsa_address_view_set_drop_down_icon, BALSA_PIXMAP_DROP_DOWN},
     };
     guint i;
+    GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
+
+    gtk_icon_theme_append_search_path(icon_theme,
+                                      BALSA_STD_PREFIX "/share/icons");
+    gtk_icon_theme_append_search_path(icon_theme, BALSA_DATA_PREFIX);
 
-    for (i = 0; i < ELEMENTS(icons); i++)
-        icons[i].set_icon(gtk_widget_render_icon_pixbuf
-                          (widget, icons[i].icon, GTK_ICON_SIZE_MENU));
+    for (i = 0; i < G_N_ELEMENTS(icons); i++) {
+        GdkPixbuf *pixbuf;
+        GError *err = NULL;
+        gint width, height;
+        const gchar *use_id = balsa_icon_id(icons[i].icon);
+
+        gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height);
+        pixbuf =
+            gtk_icon_theme_load_icon(icon_theme, use_id, width,
+                                     GTK_ICON_LOOKUP_USE_BUILTIN, &err);
+        if (err) {
+            g_print("%s %s size %d err %s\n", __func__, use_id,
+                    width, err->message);
+            g_clear_error(&err);
+        } else
+            icons[i].set_icon(pixbuf);
+    }
 }
 
 const gchar *
diff --git a/src/balsa-message.c b/src/balsa-message.c
index e6af47d..a5ae949 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -272,7 +272,7 @@ bm_header_tl_buttons(BalsaMessage * bm)
     array = g_ptr_array_new();
 
 #ifdef HAVE_GPGME
-    button = gtk_button_new();
+    button = balsa_stock_button_with_label(BALSA_PIXMAP_GPG_RECHECK, NULL);
     gtk_widget_set_tooltip_text(button,
                                _("Check cryptographic signature"));
     g_signal_connect(G_OBJECT(button), "focus_in_event",
@@ -282,16 +282,12 @@ bm_header_tl_buttons(BalsaMessage * bm)
                     G_CALLBACK(balsa_mime_widget_unlimit_focus),
                     (gpointer) bm);
     gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-    gtk_container_add(GTK_CONTAINER(button),
-                      gtk_image_new_from_icon_name
-                      (BALSA_PIXMAP_GPG_RECHECK,
-                       GTK_ICON_SIZE_LARGE_TOOLBAR));
     g_signal_connect(button, "clicked",
                     G_CALLBACK(message_recheck_crypto_cb), bm);
     g_ptr_array_add(array, button);
 #endif
 
-    button = gtk_button_new();
+    button = balsa_stock_button_with_label(BALSA_PIXMAP_ATTACHMENT, NULL);
     gtk_widget_set_tooltip_text(button,
                                _("Select message part to display"));
     g_signal_connect(G_OBJECT(button), "focus_in_event",
@@ -301,10 +297,6 @@ bm_header_tl_buttons(BalsaMessage * bm)
                     G_CALLBACK(balsa_mime_widget_unlimit_focus),
                     (gpointer) bm);
     gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-    gtk_container_add(GTK_CONTAINER(button),
-                      gtk_image_new_from_icon_name
-                      (BALSA_PIXMAP_ATTACHMENT,
-                       GTK_ICON_SIZE_LARGE_TOOLBAR));
     g_signal_connect(button, "clicked",
                     G_CALLBACK(balsa_headers_attachments_popup), bm);
     g_signal_connect(button, "key_press_event",
diff --git a/src/balsa-mime-widget-crypto.c b/src/balsa-mime-widget-crypto.c
index 9e55e88..59bc8d0 100644
--- a/src/balsa-mime-widget-crypto.c
+++ b/src/balsa-mime-widget-crypto.c
@@ -127,8 +127,9 @@ balsa_mime_widget_crypto_frame(LibBalsaMessageBody * mime_body, GtkWidget * chil
     icon_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, BMW_VBOX_SPACE);
     if (was_encrypted)
         gtk_box_pack_start(GTK_BOX(icon_box),
-                           gtk_image_new_from_icon_name(BALSA_PIXMAP_ENCR,
-                                                        GTK_ICON_SIZE_MENU),
+                           gtk_image_new_from_icon_name
+                           (balsa_icon_id(BALSA_PIXMAP_ENCR),
+                            GTK_ICON_SIZE_MENU),
                            FALSE, FALSE, 0);
     if (!no_signature) {
        const gchar * icon_name =
@@ -136,8 +137,8 @@ balsa_mime_widget_crypto_frame(LibBalsaMessageBody * mime_body, GtkWidget * chil
        if (!icon_name)
            icon_name = BALSA_PIXMAP_SIGN;
         gtk_box_pack_start(GTK_BOX(icon_box),
-                           gtk_image_new_from_icon_name(icon_name,
-                                                        GTK_ICON_SIZE_MENU),
+                           gtk_image_new_from_icon_name
+                           (balsa_icon_id(icon_name), GTK_ICON_SIZE_MENU),
                            FALSE, FALSE, 0);
     }
     gtk_frame_set_label_widget(GTK_FRAME(frame), icon_box);
diff --git a/src/main-window.c b/src/main-window.c
index e920d1a..331f00b 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -1261,8 +1261,8 @@ bw_create_index_widget(BalsaWindow *bw)
                        button = gtk_button_new(),
                        FALSE, FALSE, 0);
     gtk_container_add(GTK_CONTAINER(button),
-                      gtk_image_new_from_stock("gtk-ok",
-                                               GTK_ICON_SIZE_BUTTON));
+                      gtk_image_new_from_icon_name("gtk-ok",
+                                                    GTK_ICON_SIZE_BUTTON));
     g_signal_connect(G_OBJECT(bw->sos_entry), "activate",
                      G_CALLBACK(bw_filter_entry_activate),
                      button);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]