- GtkBin *bin;
- gboolean widget_was_visible;
-
- g_return_if_fail (container != NULL);
- g_return_if_fail (GTK_IS_PIXMAP_MENU_ITEM (container));
- g_return_if_fail (child != NULL);
- g_return_if_fail (GTK_IS_WIDGET (child));
-
- bin = GTK_BIN (container);
- g_return_if_fail ((bin->child == child ||
- (GTK_PIXMAP_MENU_ITEM(container)->pixmap == child)));
-
- widget_was_visible = GTK_WIDGET_VISIBLE (child);
-
- gtk_widget_unparent (child);
- if (bin->child == child)
- bin->child = NULL;
- else {
- GTK_PIXMAP_MENU_ITEM(container)->pixmap = NULL;
- changed_have_pixmap_status(GTK_PIXMAP_MENU_ITEM(container));
- }
-
- if (widget_was_visible)
- gtk_widget_queue_resize (GTK_WIDGET (container));
-}
-
-
-/* important to only call this if there was actually a _change_ in pixmap == NULL */
-static void
-changed_have_pixmap_status (GtkPixmapMenuItem *menu_item)
-{
- if (menu_item->pixmap != NULL) {
- GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->have_pixmap_count += 1;
-
- if (GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->have_pixmap_count == 1) {
- /* Install pixmap toggle size */
- GTK_MENU_ITEM_GET_CLASS(menu_item)->toggle_size = MAX(GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->orig_toggle_size, PMAP_WIDTH);
- }
- } else {
- GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->have_pixmap_count -= 1;
-
- if (GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->have_pixmap_count == 0) {
- /* Install normal toggle size */
- GTK_MENU_ITEM_GET_CLASS(menu_item)->toggle_size = GTK_PIXMAP_MENU_ITEM_GET_CLASS(menu_item)->orig_toggle_size;
- }
- }
-
- /* Note that we actually need to do this for _all_ GtkPixmapMenuItem
- whenever the klass->toggle_size changes; but by doing it anytime
- this function is called, we get the same effect, just because of
- how the preferences option to show pixmaps works. Bogus, broken.
- */
- if (GTK_WIDGET_VISIBLE(GTK_WIDGET(menu_item)))
- gtk_widget_queue_resize(GTK_WIDGET(menu_item));
+ #define STOCKITEM(wx,gtk) \
+ case wx: \
+ return gtk;
+
+ #if GTK_CHECK_VERSION(2,6,0)
+ #define STOCKITEM_26(wx,gtk) STOCKITEM(wx,gtk)
+ #else
+ #define STOCKITEM_26(wx,gtk)
+ #endif
+
+ #if GTK_CHECK_VERSION(2,8,0)
+ #define STOCKITEM_28(wx,gtk) STOCKITEM(wx,gtk)
+ #else
+ #define STOCKITEM_28(wx,gtk)
+ #endif
+
+ #if GTK_CHECK_VERSION(2,10,0)
+ #define STOCKITEM_210(wx,gtk) STOCKITEM(wx,gtk)
+ #else
+ #define STOCKITEM_210(wx,gtk)
+ #endif
+
+
+ switch (id)
+ {
+ STOCKITEM_26(wxID_ABOUT, GTK_STOCK_ABOUT)
+ STOCKITEM(wxID_ADD, GTK_STOCK_ADD)
+ STOCKITEM(wxID_APPLY, GTK_STOCK_APPLY)
+ STOCKITEM(wxID_BACKWARD, GTK_STOCK_GO_BACK)
+ STOCKITEM(wxID_BOLD, GTK_STOCK_BOLD)
+ STOCKITEM(wxID_BOTTOM, GTK_STOCK_GOTO_BOTTOM)
+ STOCKITEM(wxID_CANCEL, GTK_STOCK_CANCEL)
+ STOCKITEM(wxID_CDROM, GTK_STOCK_CDROM)
+ STOCKITEM(wxID_CLEAR, GTK_STOCK_CLEAR)
+ STOCKITEM(wxID_CLOSE, GTK_STOCK_CLOSE)
+ STOCKITEM(wxID_CONVERT, GTK_STOCK_CONVERT)
+ STOCKITEM(wxID_COPY, GTK_STOCK_COPY)
+ STOCKITEM(wxID_CUT, GTK_STOCK_CUT)
+ STOCKITEM(wxID_DELETE, GTK_STOCK_DELETE)
+ STOCKITEM(wxID_DOWN, GTK_STOCK_GO_DOWN)
+ STOCKITEM_26(wxID_EDIT, GTK_STOCK_EDIT)
+ STOCKITEM(wxID_EXECUTE, GTK_STOCK_EXECUTE)
+ STOCKITEM(wxID_EXIT, GTK_STOCK_QUIT)
+ STOCKITEM_26(wxID_FILE, GTK_STOCK_FILE)
+ STOCKITEM(wxID_FIND, GTK_STOCK_FIND)
+ STOCKITEM(wxID_FIRST, GTK_STOCK_GOTO_FIRST)
+ STOCKITEM(wxID_FLOPPY, GTK_STOCK_FLOPPY)
+ STOCKITEM(wxID_FORWARD, GTK_STOCK_GO_FORWARD)
+ STOCKITEM(wxID_HARDDISK, GTK_STOCK_HARDDISK)
+ STOCKITEM(wxID_HELP, GTK_STOCK_HELP)
+ STOCKITEM(wxID_HOME, GTK_STOCK_HOME)
+ STOCKITEM(wxID_INDENT, GTK_STOCK_INDENT)
+ STOCKITEM(wxID_INDEX, GTK_STOCK_INDEX)
+ STOCKITEM_28(wxID_INFO, GTK_STOCK_INFO)
+ STOCKITEM(wxID_ITALIC, GTK_STOCK_ITALIC)
+ STOCKITEM(wxID_JUMP_TO, GTK_STOCK_JUMP_TO)
+ STOCKITEM(wxID_JUSTIFY_CENTER, GTK_STOCK_JUSTIFY_CENTER)
+ STOCKITEM(wxID_JUSTIFY_FILL, GTK_STOCK_JUSTIFY_FILL)
+ STOCKITEM(wxID_JUSTIFY_LEFT, GTK_STOCK_JUSTIFY_LEFT)
+ STOCKITEM(wxID_JUSTIFY_RIGHT, GTK_STOCK_JUSTIFY_RIGHT)
+ STOCKITEM(wxID_LAST, GTK_STOCK_GOTO_LAST)
+ STOCKITEM(wxID_NETWORK, GTK_STOCK_NETWORK)
+ STOCKITEM(wxID_NEW, GTK_STOCK_NEW)
+ STOCKITEM(wxID_NO, GTK_STOCK_NO)
+ STOCKITEM(wxID_OK, GTK_STOCK_OK)
+ STOCKITEM(wxID_OPEN, GTK_STOCK_OPEN)
+ STOCKITEM(wxID_PASTE, GTK_STOCK_PASTE)
+ STOCKITEM(wxID_PREFERENCES, GTK_STOCK_PREFERENCES)
+ STOCKITEM(wxID_PREVIEW, GTK_STOCK_PRINT_PREVIEW)
+ STOCKITEM(wxID_PRINT, GTK_STOCK_PRINT)
+ STOCKITEM(wxID_PROPERTIES, GTK_STOCK_PROPERTIES)
+ STOCKITEM(wxID_REDO, GTK_STOCK_REDO)
+ STOCKITEM(wxID_REFRESH, GTK_STOCK_REFRESH)
+ STOCKITEM(wxID_REMOVE, GTK_STOCK_REMOVE)
+ STOCKITEM(wxID_REPLACE, GTK_STOCK_FIND_AND_REPLACE)
+ STOCKITEM(wxID_REVERT_TO_SAVED, GTK_STOCK_REVERT_TO_SAVED)
+ STOCKITEM(wxID_SAVE, GTK_STOCK_SAVE)
+ STOCKITEM(wxID_SAVEAS, GTK_STOCK_SAVE_AS)
+ STOCKITEM_210(wxID_SELECTALL, GTK_STOCK_SELECT_ALL)
+ STOCKITEM(wxID_SELECT_COLOR, GTK_STOCK_SELECT_COLOR)
+ STOCKITEM(wxID_SELECT_FONT, GTK_STOCK_SELECT_FONT)
+ STOCKITEM(wxID_SORT_ASCENDING, GTK_STOCK_SORT_ASCENDING)
+ STOCKITEM(wxID_SORT_DESCENDING, GTK_STOCK_SORT_DESCENDING)
+ STOCKITEM(wxID_SPELL_CHECK, GTK_STOCK_SPELL_CHECK)
+ STOCKITEM(wxID_STOP, GTK_STOCK_STOP)
+ STOCKITEM(wxID_STRIKETHROUGH, GTK_STOCK_STRIKETHROUGH)
+ STOCKITEM(wxID_TOP, GTK_STOCK_GOTO_TOP)
+ STOCKITEM(wxID_UNDELETE, GTK_STOCK_UNDELETE)
+ STOCKITEM(wxID_UNDERLINE, GTK_STOCK_UNDERLINE)
+ STOCKITEM(wxID_UNDO, GTK_STOCK_UNDO)
+ STOCKITEM(wxID_UNINDENT, GTK_STOCK_UNINDENT)
+ STOCKITEM(wxID_UP, GTK_STOCK_GO_UP)
+ STOCKITEM(wxID_YES, GTK_STOCK_YES)
+ STOCKITEM(wxID_ZOOM_100, GTK_STOCK_ZOOM_100)
+ STOCKITEM(wxID_ZOOM_FIT, GTK_STOCK_ZOOM_FIT)
+ STOCKITEM(wxID_ZOOM_IN, GTK_STOCK_ZOOM_IN)
+ STOCKITEM(wxID_ZOOM_OUT, GTK_STOCK_ZOOM_OUT)
+
+ default:
+ break;
+ };
+
+ #undef STOCKITEM
+
+ return NULL;