diff --git a/interface/wx/treectrl.h b/interface/wx/treectrl.h index 246165055d..bf52ba9e78 100644 --- a/interface/wx/treectrl.h +++ b/interface/wx/treectrl.h @@ -317,8 +317,10 @@ public: virtual void DeleteAllItems(); /** - Deletes all children of the given item (but not the item itself). Note - that this will @b not generate any events unlike Delete() method. + Deletes all children of the given item (but not the item itself). + + A @c wxEVT_TREE_DELETE_ITEM event will be generated for every item + being deleted. If you have called SetItemHasChildren(), you may need to call it again since DeleteChildren() does not automatically clear the setting. diff --git a/tests/controls/treectrltest.cpp b/tests/controls/treectrltest.cpp index 6f8e8ff514..1bf179deae 100644 --- a/tests/controls/treectrltest.cpp +++ b/tests/controls/treectrltest.cpp @@ -45,6 +45,7 @@ private: CPPUNIT_TEST_SUITE( TreeCtrlTestCase ); WXUISIM_TEST( ItemClick ); CPPUNIT_TEST( DeleteItem ); + CPPUNIT_TEST( DeleteChildren ); WXUISIM_TEST( LabelEdit ); WXUISIM_TEST( KeyDown ); #ifndef __WXGTK__ @@ -72,6 +73,7 @@ private: void ItemClick(); void DeleteItem(); + void DeleteChildren(); void LabelEdit(); void KeyDown(); #ifndef __WXGTK__ @@ -275,6 +277,16 @@ void TreeCtrlTestCase::DeleteItem() CPPUNIT_ASSERT_EQUAL(1, deleteitem.GetCount()); } +void TreeCtrlTestCase::DeleteChildren() +{ + EventCounter deletechildren(m_tree, wxEVT_TREE_DELETE_ITEM); + + m_tree->AppendItem(m_child1, "another grandchild"); + m_tree->DeleteChildren(m_child1); + + CHECK( deletechildren.GetCount() == 2 ); +} + #if wxUSE_UIACTIONSIMULATOR void TreeCtrlTestCase::LabelEdit()