CollapseAndReset() fixed

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-03-24 21:56:08 +00:00
parent 8cd850693f
commit dd3646fd30
3 changed files with 17 additions and 6 deletions

View File

@@ -61,6 +61,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(TreeTest_DeleteChildren, MyFrame::OnDeleteChildren) EVT_MENU(TreeTest_DeleteChildren, MyFrame::OnDeleteChildren)
EVT_MENU(TreeTest_DeleteAll, MyFrame::OnDeleteAll) EVT_MENU(TreeTest_DeleteAll, MyFrame::OnDeleteAll)
EVT_MENU(TreeTest_Recreate, MyFrame::OnRecreate) EVT_MENU(TreeTest_Recreate, MyFrame::OnRecreate)
EVT_MENU(TreeTest_CollapseAndReset, MyFrame::OnCollapseAndReset)
EVT_MENU(TreeTest_EnsureVisible, MyFrame::OnEnsureVisible) EVT_MENU(TreeTest_EnsureVisible, MyFrame::OnEnsureVisible)
END_EVENT_TABLE() END_EVENT_TABLE()
@@ -119,6 +120,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
tree_menu->Append(TreeTest_Dump, "D&ump tree items"); tree_menu->Append(TreeTest_Dump, "D&ump tree items");
tree_menu->Append(TreeTest_Recreate, "&Recreate the tree"); tree_menu->Append(TreeTest_Recreate, "&Recreate the tree");
tree_menu->Append(TreeTest_CollapseAndReset, "C&ollapse and reset");
tree_menu->AppendSeparator(); tree_menu->AppendSeparator();
tree_menu->Append(TreeTest_Delete, "&Delete this item"); tree_menu->Append(TreeTest_Delete, "&Delete this item");
tree_menu->Append(TreeTest_DeleteChildren, "Delete &children"); tree_menu->Append(TreeTest_DeleteChildren, "Delete &children");
@@ -265,6 +267,11 @@ void MyFrame::OnRecreate(wxCommandEvent& event)
m_treeCtrl->AddTestItemsToTree(3, 2); m_treeCtrl->AddTestItemsToTree(3, 2);
} }
void MyFrame::OnCollapseAndReset(wxCommandEvent& event)
{
m_treeCtrl->CollapseAndReset(m_treeCtrl->GetRootItem());
}
void MyFrame::OnEnsureVisible(wxCommandEvent& event) void MyFrame::OnEnsureVisible(wxCommandEvent& event)
{ {
m_treeCtrl->DoEnsureVisible(); m_treeCtrl->DoEnsureVisible();
@@ -409,11 +416,11 @@ void MyTreeCtrl::OnItemCollapsing(wxTreeEvent& event)
{ {
wxLogMessage("OnItemCollapsing"); 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(); 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(); event.Veto();
} }

View File

@@ -105,6 +105,7 @@ public:
void OnDeleteChildren(wxCommandEvent& event); void OnDeleteChildren(wxCommandEvent& event);
void OnDeleteAll(wxCommandEvent& event); void OnDeleteAll(wxCommandEvent& event);
void OnRecreate(wxCommandEvent& event); void OnRecreate(wxCommandEvent& event);
void OnCollapseAndReset(wxCommandEvent& event);
void OnSetBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(TRUE); } void OnSetBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(TRUE); }
void OnClearBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(FALSE); } void OnClearBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(FALSE); }
@@ -140,6 +141,7 @@ enum
TreeTest_DeleteChildren, TreeTest_DeleteChildren,
TreeTest_DeleteAll, TreeTest_DeleteAll,
TreeTest_Recreate, TreeTest_Recreate,
TreeTest_CollapseAndReset,
TreeTest_EnsureVisible, TreeTest_EnsureVisible,
TreeTest_Ctrl = 100 TreeTest_Ctrl = 100
}; };

View File

@@ -671,8 +671,10 @@ void wxTreeCtrl::DeleteAllItems()
void wxTreeCtrl::DoExpand(const wxTreeItemId& item, int flag) void wxTreeCtrl::DoExpand(const wxTreeItemId& item, int flag)
{ {
wxASSERT_MSG( flag == TVE_COLLAPSE || flag == TVE_COLLAPSERESET || wxASSERT_MSG( flag == TVE_COLLAPSE ||
flag == TVE_EXPAND || flag == TVE_TOGGLE, flag == (TVE_COLLAPSE | TVE_COLLAPSERESET) ||
flag == TVE_EXPAND ||
flag == TVE_TOGGLE,
"Unknown flag in wxTreeCtrl::DoExpand" ); "Unknown flag in wxTreeCtrl::DoExpand" );
// TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must // TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must
@@ -712,7 +714,7 @@ void wxTreeCtrl::Collapse(const wxTreeItemId& item)
void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item) void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item)
{ {
DoExpand(item, TVE_COLLAPSERESET); DoExpand(item, TVE_COLLAPSE | TVE_COLLAPSERESET);
} }
void wxTreeCtrl::Toggle(const wxTreeItemId& item) void wxTreeCtrl::Toggle(const wxTreeItemId& item)