]> git.saurik.com Git - wxWidgets.git/commitdiff
CollapseAndReset() fixed
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 24 Mar 1999 21:56:08 +0000 (21:56 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 24 Mar 1999 21:56:08 +0000 (21:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/treectrl/treetest.cpp
samples/treectrl/treetest.h
src/msw/treectrl.cpp

index 628f84ce8e3d040a38dc37c6a4dd5a2f911382f7..577deecd6ef31c205b8dbb9ca03741860ba9ee5d 100644 (file)
@@ -61,6 +61,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
   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()
 
@@ -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_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");
@@ -265,6 +267,11 @@ void MyFrame::OnRecreate(wxCommandEvent& event)
   m_treeCtrl->AddTestItemsToTree(3, 2);
 }
 
+void MyFrame::OnCollapseAndReset(wxCommandEvent& event)
+{
+  m_treeCtrl->CollapseAndReset(m_treeCtrl->GetRootItem());  
+}
+
 void MyFrame::OnEnsureVisible(wxCommandEvent& event)
 {
     m_treeCtrl->DoEnsureVisible();
@@ -409,11 +416,11 @@ void MyTreeCtrl::OnItemCollapsing(wxTreeEvent& event)
 {
   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();
   }
index e51e97389b96bf21889ae3f4374d802919e53f5b..8c987b847b05db844d96731cae7880a04377824d 100644 (file)
@@ -105,6 +105,7 @@ public:
   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); }
@@ -140,6 +141,7 @@ enum
   TreeTest_DeleteChildren,
   TreeTest_DeleteAll,
   TreeTest_Recreate,
+  TreeTest_CollapseAndReset,
   TreeTest_EnsureVisible,
   TreeTest_Ctrl = 100
 };
index 0446ef1aed7338bad210da346cec37f326ff4e25..eb6dfc49774a897eaf883c1253c905ccc3225502 100644 (file)
@@ -671,8 +671,10 @@ void wxTreeCtrl::DeleteAllItems()
 
 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
@@ -712,7 +714,7 @@ void wxTreeCtrl::Collapse(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)