diff --git a/interface/wx/treectrl.h b/interface/wx/treectrl.h index bf52ba9e78..f737d20d3c 100644 --- a/interface/wx/treectrl.h +++ b/interface/wx/treectrl.h @@ -310,9 +310,11 @@ public: virtual void Delete(const wxTreeItemId& item); /** - Deletes all items in the control. Note that this may not generate - @c EVT_TREE_DELETE_ITEM events under some Windows versions although - normally such event is generated for each removed item. + Deletes all items in the control. + + This function generates @c wxEVT_TREE_DELETE_ITEM events for each item + being deleted, including the root one if it is shown, i.e. unless + wxTR_HIDE_ROOT style is used. */ virtual void DeleteAllItems(); diff --git a/tests/controls/treectrltest.cpp b/tests/controls/treectrltest.cpp index 1bf179deae..433c32ce61 100644 --- a/tests/controls/treectrltest.cpp +++ b/tests/controls/treectrltest.cpp @@ -46,6 +46,7 @@ private: WXUISIM_TEST( ItemClick ); CPPUNIT_TEST( DeleteItem ); CPPUNIT_TEST( DeleteChildren ); + CPPUNIT_TEST( DeleteAllItems ); WXUISIM_TEST( LabelEdit ); WXUISIM_TEST( KeyDown ); #ifndef __WXGTK__ @@ -74,6 +75,7 @@ private: void ItemClick(); void DeleteItem(); void DeleteChildren(); + void DeleteAllItems(); void LabelEdit(); void KeyDown(); #ifndef __WXGTK__ @@ -271,8 +273,6 @@ void TreeCtrlTestCase::DeleteItem() wxTreeItemId todelete = m_tree->AppendItem(m_root, "deleteme"); m_tree->Delete(todelete); - // We do not test DeleteAllItems() as under some versions of Windows events - // are not generated. CPPUNIT_ASSERT_EQUAL(1, deleteitem.GetCount()); } @@ -287,6 +287,15 @@ void TreeCtrlTestCase::DeleteChildren() CHECK( deletechildren.GetCount() == 2 ); } +void TreeCtrlTestCase::DeleteAllItems() +{ + EventCounter deleteall(m_tree, wxEVT_TREE_DELETE_ITEM); + + m_tree->DeleteAllItems(); + + CHECK( deleteall.GetCount() == 4 ); +} + #if wxUSE_UIACTIONSIMULATOR void TreeCtrlTestCase::LabelEdit()