- wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
-
- GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
- int count = 0;
- GList *child = menu_shell->children;
- while (child)
- {
- GtkBin *bin = GTK_BIN( child->data );
- if (!bin->child) return count;
- child = child->next;
- count++;
- }
+ wxCHECK_RET( m_widget != NULL, wxT("invalid control") );
+ wxCHECK_RET( IsValid(n), _T("invalid index in wxChoice::Delete") );
+
+ GtkComboBox* combobox = GTK_COMBO_BOX( m_widget );
+ GtkTreeModel* model = gtk_combo_box_get_model( combobox );
+ GtkListStore* store = GTK_LIST_STORE(model);
+ GtkTreeIter iter;
+ gtk_tree_model_iter_nth_child( model, &iter,
+ NULL, (gint) n );
+ gtk_list_store_remove( store, &iter );
+
+ m_clientData.RemoveAt( n );
+ if ( m_strings )
+ m_strings->RemoveAt( n );