+ void Insert(unsigned int n, const wxString* items,
+ unsigned int pos,
+ wxClientData** clientData);
+ //@}
+
+ //@{
+ /**
+ Replaces the current control contents with the given items.
+
+ Notice that calling this method is usually much faster than appending
+ them one by one if you need to add a lot of items.
+
+ @param items
+ Array of strings to insert.
+ */
+ void Set(const wxArrayString& items);
+
+ /**
+ Replaces the current control contents with the given items.
+
+ Notice that calling this method is usually much faster than appending
+ them one by one if you need to add a lot of items.
+
+ @param items
+ Array of strings to insert.
+ @param clientData
+ Array of client data pointers of the same size as @a items to
+ associate with the new items.
+ */
+ void Set(const wxArrayString& items, void **clientData);
+
+ /**
+ Replaces the current control contents with the given items.
+
+ Notice that calling this method is usually much faster than appending
+ them one by one if you need to add a lot of items.
+
+ @param items
+ Array of strings to insert.
+ @param clientData
+ Array of client data pointers of the same size as @a items to
+ associate with the new items.
+ */
+ void Set(const wxArrayString& items, wxClientData **clientData);
+
+ /**
+ Replaces the current control contents with the given items.
+
+ Notice that calling this method is usually much faster than appending
+ them one by one if you need to add a lot of items.
+
+ @param n
+ Number of items in the @a items array.
+ @param items
+ Array of strings of size @a n.
+ */
+ void Set(unsigned int n, const wxString* items);
+
+ /**
+ Replaces the current control contents with the given items.
+
+ Notice that calling this method is usually much faster than appending
+ them one by one if you need to add a lot of items.
+
+ @param n
+ Number of items in the @a items array.
+ @param items
+ Array of strings of size @a n.
+ @param clientData
+ Array of client data pointers of size @a n to associate with the
+ new items.
+ */
+ void Set(unsigned int n, const wxString* items, void** clientData);
+
+ /**
+ Replaces the current control contents with the given items.
+
+ Notice that calling this method is usually much faster than appending
+ them one by one if you need to add a lot of items.
+
+ @param n
+ Number of items in the @a items array.
+ @param items
+ Array of strings of size @a n.
+ @param clientData
+ Array of client data pointers of size @a n to associate with the
+ new items.
+ */
+ void Set(unsigned int n, const wxString* items, wxClientData** clientData);
+ //@}
+};
+
+
+/**
+ @class wxControlWithItems
+ @wxheader{ctrlsub.h}
+
+ This is convenience class that derives from both wxControl and
+ wxItemContainer. It is used as basis for some wxWidgets controls
+ (wxChoice and wxListBox).
+
+ @library{wxcore}
+ @category{ctrl}
+
+ @see wxItemContainer, wxItemContainerImmutable
+*/
+class wxControlWithItems : public wxControl, public wxItemContainer
+{