[balsa/gtk3] More GtkStock deprecation cleanup
- From: Peter Bloomfield <PeterB src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/gtk3] More GtkStock deprecation cleanup
- Date: Mon, 22 Jul 2013 04:14:27 +0000 (UTC)
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]