Mercurial > emacs
changeset 85938:d7e05ac913d8
(xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and
abort with a message on unhandled store_type values.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Tue, 06 Nov 2007 09:26:52 +0000 |
parents | 0fb2af7d89ed |
children | 63904cde38a0 |
files | src/gtkutil.c |
diffstat | 1 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gtkutil.c Tue Nov 06 07:00:47 2007 +0000 +++ b/src/gtkutil.c Tue Nov 06 09:26:52 2007 +0000 @@ -3460,6 +3460,7 @@ GtkImage *wimage = GTK_IMAGE (gtk_bin_get_child (GTK_BIN (wbutton))); GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (wbutton)); GtkImageType store_type = gtk_image_get_storage_type (wimage); + if (store_type == GTK_IMAGE_STOCK) { gchar *stock_id; @@ -3489,6 +3490,25 @@ wmenuimage = gtk_image_new_from_pixbuf (dest_pixbuf); } + else + { + fprintf (stderr, "internal error: GTK_IMAGE_PIXBUF failed\n"); + abort (); + } + } + else if (store_type == GTK_IMAGE_ICON_NAME) + { + const gchar *icon_name; + GtkIconSize icon_size; + + gtk_image_get_icon_name (wimage, &icon_name, &icon_size); + wmenuimage = gtk_image_new_from_icon_name (icon_name, + GTK_ICON_SIZE_MENU); + } + else + { + fprintf (stderr, "internal error: store_type is %d\n", store_type); + abort (); } } if (wmenuimage)