- int n = DoInsert(item, pos);
- if ( n != wxNOT_FOUND )
- SetClientData(n, clientData);
+ wxCHECK_RET( pos < GetCount(), wxT("invalid index") );
+
+ if ( HasClientObjectData() )
+ ResetItemClientObject(pos);
+
+ DoDeleteOneItem(pos);
+
+ if ( IsEmpty() )
+ {
+ SetClientDataType(wxClientData_None);
+ }
+}
+
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+
+int wxItemContainer::DoInsertItemsInLoop(const wxArrayStringsAdapter& items,
+ unsigned int pos,
+ void **clientData,
+ wxClientDataType type)
+{
+ int n = wxNOT_FOUND;
+
+ const unsigned int count = items.GetCount();
+ for ( unsigned int i = 0; i < count; ++i )
+ {
+ n = DoInsertOneItem(items[i], pos++);
+ if ( n == wxNOT_FOUND )
+ break;
+
+ AssignNewItemClientData(n, clientData, i, type);
+ }