comparison src/gtkutil.c @ 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 5d074ea0e4a2
children 3408ab8b4152 880960b70474
comparison
equal deleted inserted replaced
85937:0fb2af7d89ed 85938:d7e05ac913d8
3458 else 3458 else
3459 { 3459 {
3460 GtkImage *wimage = GTK_IMAGE (gtk_bin_get_child (GTK_BIN (wbutton))); 3460 GtkImage *wimage = GTK_IMAGE (gtk_bin_get_child (GTK_BIN (wbutton)));
3461 GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (wbutton)); 3461 GtkSettings *settings = gtk_widget_get_settings (GTK_WIDGET (wbutton));
3462 GtkImageType store_type = gtk_image_get_storage_type (wimage); 3462 GtkImageType store_type = gtk_image_get_storage_type (wimage);
3463
3463 if (store_type == GTK_IMAGE_STOCK) 3464 if (store_type == GTK_IMAGE_STOCK)
3464 { 3465 {
3465 gchar *stock_id; 3466 gchar *stock_id;
3466 gtk_image_get_stock (wimage, &stock_id, NULL); 3467 gtk_image_get_stock (wimage, &stock_id, NULL);
3467 wmenuimage = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); 3468 wmenuimage = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
3487 dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, width, height, 3488 dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, width, height,
3488 GDK_INTERP_BILINEAR); 3489 GDK_INTERP_BILINEAR);
3489 3490
3490 wmenuimage = gtk_image_new_from_pixbuf (dest_pixbuf); 3491 wmenuimage = gtk_image_new_from_pixbuf (dest_pixbuf);
3491 } 3492 }
3493 else
3494 {
3495 fprintf (stderr, "internal error: GTK_IMAGE_PIXBUF failed\n");
3496 abort ();
3497 }
3498 }
3499 else if (store_type == GTK_IMAGE_ICON_NAME)
3500 {
3501 const gchar *icon_name;
3502 GtkIconSize icon_size;
3503
3504 gtk_image_get_icon_name (wimage, &icon_name, &icon_size);
3505 wmenuimage = gtk_image_new_from_icon_name (icon_name,
3506 GTK_ICON_SIZE_MENU);
3507 }
3508 else
3509 {
3510 fprintf (stderr, "internal error: store_type is %d\n", store_type);
3511 abort ();
3492 } 3512 }
3493 } 3513 }
3494 if (wmenuimage) 3514 if (wmenuimage)
3495 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wmenuitem), wmenuimage); 3515 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (wmenuitem), wmenuimage);
3496 3516