+int wxChoice::DoInsert(const wxString &item, unsigned int pos)
+{
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice control") );
+ wxCHECK_MSG( IsValidInsert(pos), -1, wxT("invalid index"));
+
+ if (pos == GetCount())
+ return DoAppend(item);
+
+ GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
+
+ // if the item to insert is at or before the selection, and the selection is valid
+ if (((int)pos <= m_selection_hack) && (m_selection_hack != wxNOT_FOUND))
+ {
+ // move the selection forward one
+ m_selection_hack++;
+ }
+
+ return GtkAddHelper(menu, pos, item);
+}
+
+void wxChoice::DoSetItemClientData(unsigned int n, void* clientData)