- gtk_widget_show( list_item );
-
- count = GetCount();
-
- if ( (int)m_clientDataList.GetCount() < count )
- m_clientDataList.Insert( pos, (wxObject*) NULL );
- if ( (int)m_clientObjectList.GetCount() < count )
- m_clientObjectList.Insert( pos, (wxObject*) NULL );
-
- EnableEvents();
-
- InvalidateBestSize();
-
- return pos;
-}
-
-void wxComboBox::DoSetItemClientData( int n, void* clientData )
-{
- wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
-
- wxList::compatibility_iterator node = m_clientDataList.Item( n );
- if (!node) return;
-
- node->SetData( (wxObject*) clientData );
-}
-
-void* wxComboBox::DoGetItemClientData( int n ) const
-{
- wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
-
- wxList::compatibility_iterator node = m_clientDataList.Item( n );
-
- return node ? node->GetData() : NULL;
-}
-
-void wxComboBox::DoSetItemClientObject( int n, wxClientData* clientData )
-{
- wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
-
- wxList::compatibility_iterator node = m_clientObjectList.Item( n );
- if (!node) return;
-
- // wxItemContainer already deletes data for us
-
- node->SetData( (wxObject*) clientData );
-}
-
-wxClientData* wxComboBox::DoGetItemClientObject( int n ) const
-{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, wxT("invalid combobox") );
-
- wxList::compatibility_iterator node = m_clientObjectList.Item( n );
-
- return node ? (wxClientData*) node->GetData() : NULL;
-}
-
-void wxComboBox::Clear()
-{
- wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
-
- DisableEvents();
-
- GtkWidget *list = GTK_COMBO(m_widget)->list;
- gtk_list_clear_items( GTK_LIST(list), 0, GetCount() );
-
- wxList::compatibility_iterator node = m_clientObjectList.GetFirst();
- while (node)
- {
- wxClientData *cd = (wxClientData*)node->GetData();
- if (cd) delete cd;
- node = node->GetNext();
- }
- m_clientObjectList.Clear();
-
- m_clientDataList.Clear();
-
- EnableEvents();
-
- InvalidateBestSize();
-}
-
-void wxComboBox::Delete( int n )
-{
- wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
-
- GtkList *listbox = GTK_LIST( GTK_COMBO(m_widget)->list );
-
- 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();
-
- InvalidateBestSize();
-}
-
-void wxComboBox::SetString(int n, const wxString &text)
-{
- wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
-
- GtkWidget *list = GTK_COMBO(m_widget)->list;