summaryrefslogtreecommitdiff
path: root/src/util.c
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 /src/util.c
parent1a43253ac568bc8ff293746477361a33a4469f88 (diff)
downloadzenity-fba4f05582d6c84030354ba3e1adc228543a3919.tar.gz
Rework zenity_util_set_window_icon* to not use stock images
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c65
1 files changed, 30 insertions, 35 deletions
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