+// ----------------------------------------------------------------------------
+// methods forwarded to wxCheckListBox
+// ----------------------------------------------------------------------------
+
+void wxCheckListBox::Delete(unsigned int n)
+{
+ wxCHECK_RET( IsValid(n), wxT("invalid index in wxCheckListBox::Delete") );
+
+ wxListBox::Delete( n );
+ m_checks.RemoveAt( n );
+}
+
+int wxCheckListBox::DoAppend(const wxString& item)
+{
+ int pos = wxListBox::DoAppend( item );
+
+ // the item is initially unchecked
+ m_checks.Insert( false, pos );
+
+ return pos;
+}
+
+void wxCheckListBox::DoInsertItems(const wxArrayString& items, unsigned int pos)
+{
+ wxListBox::DoInsertItems( items, pos );
+
+ unsigned int count = items.GetCount();
+ for ( unsigned int n = 0; n < count; n++ )
+ {
+ m_checks.Insert( false, pos + n );
+ }
+}
+
+void wxCheckListBox::DoSetItems(const wxArrayString& items, void **clientData)
+{
+ // call it first as it does DoClear()
+ wxListBox::DoSetItems( items, clientData );
+
+ unsigned int count = items.GetCount();
+ for ( unsigned int n = 0; n < count; n++ )
+ {
+ m_checks.Add( false );
+ }
+}
+
+void wxCheckListBox::DoClear()
+{
+ m_checks.Empty();
+}