+// inline
+// void wxTreeListMainWindow::DeleteChildren(const wxTreeItemId& itemId)
+// {
+// m_dirty = TRUE; // do this first so stuff below doesn't cause flicker
+
+// wxTreeListItem *item = (wxTreeListItem*) itemId.m_pItem;
+// item->DeleteChildren(this);
+// }
+
+// inline
+// void wxTreeListMainWindow::Delete(const wxTreeItemId& itemId)
+// {
+// m_dirty = TRUE; // do this first so stuff below doesn't cause flicker
+
+// wxTreeListItem *item = (wxTreeListItem*) itemId.m_pItem;
+
+// // don't stay with invalid m_key_current or we will crash in
+// // the next call to OnChar()
+// bool changeKeyCurrent = FALSE;
+// wxTreeListItem *itemKey = m_key_current;
+// while ( itemKey )
+// {
+// if ( itemKey == item )
+// {
+// // m_key_current is a descendant of the item being deleted
+// changeKeyCurrent = TRUE;
+// break;
+// }
+// itemKey = itemKey->GetParent();
+// }
+
+// wxTreeListItem *parent = item->GetParent();
+// if ( parent )
+// {
+// parent->GetChildren().Remove( item ); // remove by value
+// }
+
+// if ( changeKeyCurrent )
+// {
+// // may be NULL or not
+// m_key_current = parent;
+// }
+
+// item->DeleteChildren(this);
+// SendDeleteEvent(item);
+// delete item;
+// }
+
+// inline
+// void wxTreeListMainWindow::DeleteAllItems()
+// {
+// if ( m_anchor )
+// {
+// m_dirty = TRUE;
+
+// m_anchor->DeleteChildren(this);
+// delete m_anchor;
+
+// m_anchor = NULL;
+// }
+// }