diff options
author | Javier Jardón <jjardon@gnome.org> | 2015-03-22 06:02:41 +0000 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2015-03-22 09:16:16 +0000 |
commit | fba4f05582d6c84030354ba3e1adc228543a3919 (patch) | |
tree | e6647f56b993d3b0e35786d2e83e3655cb2772ad | |
parent | Do not use a stock answer for yes/no buttons (diff) | |
download | zenity-fba4f05582d6c84030354ba3e1adc228543a3919.tar.gz zenity-fba4f05582d6c84030354ba3e1adc228543a3919.tar.bz2 zenity-fba4f05582d6c84030354ba3e1adc228543a3919.zip |
Rework zenity_util_set_window_icon* to not use stock images
-rw-r--r-- | src/msg.c | 8 | ||||
-rw-r--r-- | src/util.c | 65 | ||||
-rw-r--r-- | src/util.h | 8 |
3 files changed, 38 insertions, 43 deletions
@@ -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: @@ -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 @@ -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); |