- GError *err = NULL;
- GdkPixbuf *pixbuf =
- gdk_pixbuf_new_from_file (relocate (icons[i].file_name), &err);
-
- if ( pixbuf )
- {
- GtkIconSet *icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
- g_object_unref (pixbuf);
- gtk_icon_factory_add ( factory, icons[i].id, icon_set);
- }
- else
- {
- g_warning ("Cannot create icon: %s", err->message);
- g_clear_error (&err);
- }
+ const gchar *gtk_id;
+ gchar *pspp_id;
+ };
+
+ /* We have our own icons for some things.
+ But we want the Stock Item to be identical to the Gtk standard
+ ones in all other respects.
+ */
+ const struct iconmap map[] = {
+ {GTK_STOCK_NEW, "file-new-document"},
+ {GTK_STOCK_QUIT, "file-quit"},
+ {GTK_STOCK_SAVE, "file-save-document"},
+ {GTK_STOCK_CUT, "edit-cut"},
+ {GTK_STOCK_COPY, "edit-copy"},
+ {GTK_STOCK_PASTE, "edit-paste"},
+ {GTK_STOCK_UNDO, "edit-undo"},
+ {GTK_STOCK_REDO, "edit-redo"},
+ {GTK_STOCK_DELETE, "edit-delete"},
+ {GTK_STOCK_ABOUT, "help-about"},
+ {GTK_STOCK_PRINT, "file-print-document"}
+ };
+
+ GtkStockItem customised[sizeof (map) / sizeof (map[0])];
+ int i;
+
+ for (i = 0; i < sizeof (map) / sizeof (map[0]); ++i)
+ {
+ gtk_stock_lookup (map[i].gtk_id, &customised[i]);
+ customised[i].stock_id = map[i].pspp_id;