EVT_MENU(TreeTest_DeleteChildren, MyFrame::OnDeleteChildren)
EVT_MENU(TreeTest_DeleteAll, MyFrame::OnDeleteAll)
EVT_MENU(TreeTest_Recreate, MyFrame::OnRecreate)
+ EVT_MENU(TreeTest_CollapseAndReset, MyFrame::OnCollapseAndReset)
EVT_MENU(TreeTest_EnsureVisible, MyFrame::OnEnsureVisible)
END_EVENT_TABLE()
tree_menu->Append(TreeTest_Dump, "D&ump tree items");
tree_menu->Append(TreeTest_Recreate, "&Recreate the tree");
+ tree_menu->Append(TreeTest_CollapseAndReset, "C&ollapse and reset");
tree_menu->AppendSeparator();
tree_menu->Append(TreeTest_Delete, "&Delete this item");
tree_menu->Append(TreeTest_DeleteChildren, "Delete &children");
m_treeCtrl->AddTestItemsToTree(3, 2);
}
+void MyFrame::OnCollapseAndReset(wxCommandEvent& event)
+{
+ m_treeCtrl->CollapseAndReset(m_treeCtrl->GetRootItem());
+}
+
void MyFrame::OnEnsureVisible(wxCommandEvent& event)
{
m_treeCtrl->DoEnsureVisible();
{
wxLogMessage("OnItemCollapsing");
- // for testing, prevent the user from collapsing the root item
+ // for testing, prevent the user from collapsing the first child folder
wxTreeItemId itemId = event.GetItem();
- if ( !GetParent(itemId).IsOk() )
+ if ( GetParent(itemId) == GetRootItem() && !GetPrevSibling(itemId) )
{
- wxMessageBox("You can't collapse the root item.");
+ wxMessageBox("You can't collapse this item.");
event.Veto();
}
void OnDeleteChildren(wxCommandEvent& event);
void OnDeleteAll(wxCommandEvent& event);
void OnRecreate(wxCommandEvent& event);
+ void OnCollapseAndReset(wxCommandEvent& event);
void OnSetBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(TRUE); }
void OnClearBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(FALSE); }
TreeTest_DeleteChildren,
TreeTest_DeleteAll,
TreeTest_Recreate,
+ TreeTest_CollapseAndReset,
TreeTest_EnsureVisible,
TreeTest_Ctrl = 100
};
void wxTreeCtrl::DoExpand(const wxTreeItemId& item, int flag)
{
- wxASSERT_MSG( flag == TVE_COLLAPSE || flag == TVE_COLLAPSERESET ||
- flag == TVE_EXPAND || flag == TVE_TOGGLE,
+ wxASSERT_MSG( flag == TVE_COLLAPSE ||
+ flag == (TVE_COLLAPSE | TVE_COLLAPSERESET) ||
+ flag == TVE_EXPAND ||
+ flag == TVE_TOGGLE,
"Unknown flag in wxTreeCtrl::DoExpand" );
// TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must
void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item)
{
- DoExpand(item, TVE_COLLAPSERESET);
+ DoExpand(item, TVE_COLLAPSE | TVE_COLLAPSERESET);
}
void wxTreeCtrl::Toggle(const wxTreeItemId& item)