- wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
-
- // VZ: notice that InsertItems knows nothing about sorting, so calling it
- // from outside (and not from our own Append) is likely to break
- // everything
-
- // code elsewhere supposes we have as many items in m_clientList as items
- // in the listbox
- wxASSERT_MSG( m_clientList.GetCount() == (size_t)GetCount(),
- wxT("bug in client data management") );
-
- GList *children = m_list->children;
- int length = g_list_length(children);
-
- wxCHECK_RET( pos <= length, wxT("invalid index in wxListBox::InsertItems") );
-
- size_t nItems = items.GetCount();
- int index;
-
- if (m_strings)
- {
- for (size_t n = 0; n < nItems; n++)
- {
- index = m_strings->Add( items[n] );
-
- if (index != GetCount())
- {
- GtkAddItem( items[n], index );
- wxNode *node = m_clientList.Nth( index );
- m_clientList.Insert( node, (wxObject*) NULL );
- }
- else
- {
- GtkAddItem( items[n] );
- m_clientList.Append( (wxObject*) NULL );
- }
- }
- }
- else
- {
- if (pos == length)
- {
- for ( size_t n = 0; n < nItems; n++ )
- {
- GtkAddItem( items[n] );
-
- m_clientList.Append((wxObject *)NULL);
- }
- }
- else
- {
- wxNode *node = m_clientList.Nth( pos );
- for ( size_t n = 0; n < nItems; n++ )
- {
- GtkAddItem( items[n], pos+n );
-
- m_clientList.Insert( node, (wxObject *)NULL );
- }
- }
- }