summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2015-03-22 06:02:41 +0000
committerJavier Jardón <jjardon@gnome.org>2015-03-22 09:16:16 +0000
commitfba4f05582d6c84030354ba3e1adc228543a3919 (patch)
treee6647f56b993d3b0e35786d2e83e3655cb2772ad
parent1a43253ac568bc8ff293746477361a33a4469f88 (diff)
downloadzenity-fba4f05582d6c84030354ba3e1adc228543a3919.tar.gz
Rework zenity_util_set_window_icon* to not use stock images
-rw-r--r--src/msg.c8
-rw-r--r--src/util.c65
-rw-r--r--src/util.h8
3 files changed, 38 insertions, 43 deletions
diff --git a/src/msg.c b/src/msg.c
index 73c4898..6892e73 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -120,20 +120,20 @@ zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
switch (msg_data->mode) {
case ZENITY_MSG_WARNING:
- zenity_util_set_window_icon_from_stock (dialog, data->window_icon, GTK_STOCK_DIALOG_WARNING);
+ zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-warning");
break;
case ZENITY_MSG_QUESTION:
- zenity_util_set_window_icon_from_stock (dialog, data->window_icon, GTK_STOCK_DIALOG_QUESTION);
+ zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-question");
zenity_msg_construct_question_dialog (dialog, msg_data, data);
break;
case ZENITY_MSG_ERROR:
- zenity_util_set_window_icon_from_stock (dialog, data->window_icon, GTK_STOCK_DIALOG_ERROR);
+ zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-error");
break;
case ZENITY_MSG_INFO:
- zenity_util_set_window_icon_from_stock (dialog, data->window_icon, GTK_STOCK_DIALOG_INFO);
+ zenity_util_set_window_icon_from_icon_name (dialog, data->window_icon, "dialog-information");
break;
default:
diff --git a/src/util.c b/src/util.c
index d63aeca..29ef6da 100644
--- a/src/util.c
+++ b/src/util.c
@@ -178,66 +178,61 @@ zenity_util_fill_file_buffer (GtkTextBuffer *buffer, const gchar *filename)
}
const gchar *
-zenity_util_stock_from_filename (const gchar *filename)
+zenity_util_icon_name_from_filename (const gchar *filename)
{
if (!filename || !filename[0])
- return GTK_STOCK_DIALOG_WARNING; /* default */
+ return "dialog-warning"; /* default */
if (!g_ascii_strcasecmp (filename, "warning"))
- return GTK_STOCK_DIALOG_WARNING;
+ return "dialog-warning";
if (!g_ascii_strcasecmp (filename, "info"))
- return GTK_STOCK_DIALOG_INFO;
+ return "dialog-information";
if (!g_ascii_strcasecmp (filename, "question"))
- return GTK_STOCK_DIALOG_QUESTION;
+ return "dialog-question";
if (!g_ascii_strcasecmp (filename, "error"))
- return GTK_STOCK_DIALOG_ERROR;
+ return "dialog-error";
return NULL;
}
-GdkPixbuf *
-zenity_util_pixbuf_new_from_file (GtkWidget *widget, const gchar *filename)
-{
- const gchar *stock;
-
- stock = zenity_util_stock_from_filename (filename);
- if (stock)
- return gtk_widget_render_icon (widget, stock, GTK_ICON_SIZE_BUTTON, NULL);
-
- return gdk_pixbuf_new_from_file (filename, NULL);
-}
-
void
-zenity_util_set_window_icon (GtkWidget *widget, const gchar *filename, const gchar *default_file)
+zenity_util_set_window_icon_from_file (GtkWidget *widget, const gchar *filename)
{
GdkPixbuf *pixbuf;
+ const gchar *icon_name;
- if (filename != NULL)
- pixbuf = zenity_util_pixbuf_new_from_file (widget, (gchar *) filename);
- else
- pixbuf = gdk_pixbuf_new_from_file (default_file, NULL);
-
- if (pixbuf != NULL) {
+ icon_name = zenity_util_icon_name_from_filename (filename);
+ if (icon_name) {
+ gtk_window_set_icon_name (GTK_WINDOW (widget), icon_name);
+ } else {
+ pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
g_object_unref (pixbuf);
}
}
-void
-zenity_util_set_window_icon_from_stock (GtkWidget *widget, const gchar *filename, const gchar *default_stock_id)
+void
+zenity_util_set_window_icon (GtkWidget *widget, const gchar *filename, const gchar *default_file)
{
GdkPixbuf *pixbuf;
if (filename != NULL) {
- pixbuf = zenity_util_pixbuf_new_from_file (widget, (gchar *) filename);
- }
- else {
- pixbuf = gtk_widget_render_icon (widget, default_stock_id, GTK_ICON_SIZE_BUTTON, NULL);
+ zenity_util_set_window_icon_from_file (widget, filename);
+ } else {
+ pixbuf = gdk_pixbuf_new_from_file (default_file, NULL);
+ if (pixbuf != NULL) {
+ gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
+ g_object_unref (pixbuf);
+ }
}
+}
- if (pixbuf != NULL) {
- gtk_window_set_icon (GTK_WINDOW (widget), pixbuf);
- g_object_unref (pixbuf);
- }
+void
+zenity_util_set_window_icon_from_icon_name (GtkWidget *widget, const gchar *filename, const gchar *default_icon_name)
+{
+ if (filename != NULL)
+ zenity_util_set_window_icon_from_file (widget, filename);
+ else
+ gtk_window_set_icon_name (GTK_WINDOW (widget), default_icon_name);
}
void
diff --git a/src/util.h b/src/util.h
index f9db4be..0fd2fff 100644
--- a/src/util.h
+++ b/src/util.h
@@ -19,14 +19,14 @@ GtkBuilder* zenity_util_load_ui_file (const gchar *widge
gchar * zenity_util_strip_newline (gchar *string);
gboolean zenity_util_fill_file_buffer (GtkTextBuffer *buffer,
const gchar *filename);
-const gchar * zenity_util_stock_from_filename (const gchar *filename);
+const gchar * zenity_util_icon_name_from_filename (const gchar *filename);
void zenity_util_set_window_icon (GtkWidget *widget,
const gchar *filename,
const gchar *default_file);
-void zenity_util_set_window_icon_from_stock (GtkWidget *widget,
+void zenity_util_set_window_icon_from_icon_name(GtkWidget *widget,
const gchar *filename,
- const gchar *default_stock_id);
-GdkPixbuf * zenity_util_pixbuf_new_from_file (GtkWidget *widget,
+ const gchar *default_icon_name);
+void zenity_util_set_window_icon_from_file (GtkWidget *widget,
const gchar *filename);
void zenity_util_show_help (GError **error);
gint zenity_util_return_exit_code (ZenityExitCode value);