- GList *child = g_list_nth( listbox->children, n );
-
- if (!child)
- {
- wxFAIL_MSG(wxT("wrong index"));
- return;
- }
-
- DisableEvents();
-
- GList *list = g_list_append( (GList*) NULL, child->data );
- gtk_list_remove_items( listbox, list );
- g_list_free( list );
-
- wxList::compatibility_iterator node = m_clientObjectList.Item( n );
- if (node)
- {
- wxClientData *cd = (wxClientData*)node->GetData();
- if (cd) delete cd;
- m_clientObjectList.Erase( node );
- }
-
- node = m_clientDataList.Item( n );
- if (node)
- m_clientDataList.Erase( node );
-
- EnableEvents();
-}
-
-void wxComboBox::SetString(int n, const wxString &text)
-{
- wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
-
- GtkWidget *list = GTK_COMBO(m_widget)->list;
-
- GList *child = g_list_nth( GTK_LIST(list)->children, n );
- if (child)
- {
- GtkBin *bin = GTK_BIN( child->data );
- GtkLabel *label = GTK_LABEL( bin->child );
- gtk_label_set_text(label, wxGTK_CONV(text));
- }
- else
- {
- wxFAIL_MSG( wxT("wxComboBox: wrong index") );
- }
-}
-
-int wxComboBox::FindString( const wxString &item )
-{
- wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
-
- GtkWidget *list = GTK_COMBO(m_widget)->list;
-
- GList *child = GTK_LIST(list)->children;
+ GtkComboBox* combobox = GTK_COMBO_BOX( m_widget );
+ GtkTreeModel* model = gtk_combo_box_get_model( combobox );
+ GtkTreeIter iter;
+ gtk_tree_model_get_iter_first( model, &iter );
+ if (!gtk_list_store_iter_is_valid(GTK_LIST_STORE(model), &iter ))
+ return -1;