+ const wxArrayString strings = GetStrings();
+ const unsigned numItems = strings.size();
+ unsigned i;
+
+ // Save the client data pointers before clearing the control, if any.
+ const wxClientDataType clientDataType = GetClientDataType();
+ wxVector<wxClientData*> objectClientData;
+ wxVector<void*> voidClientData;
+ switch ( clientDataType )
+ {
+ case wxClientData_None:
+ break;
+
+ case wxClientData_Object:
+ objectClientData.reserve(numItems);
+ for ( i = 0; i < numItems; ++i )
+ objectClientData.push_back(GetClientObject(i));
+ break;
+
+ case wxClientData_Void:
+ voidClientData.reserve(numItems);
+ for ( i = 0; i < numItems; ++i )
+ voidClientData.push_back(GetClientData(i));
+ break;
+ }