]> git.saurik.com Git - wxWidgets.git/commitdiff
added ExpandAllChildrne() (patch 1498343)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 2 Jul 2006 01:22:42 +0000 (01:22 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 2 Jul 2006 01:22:42 +0000 (01:22 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
docs/latex/wx/treectrl.tex
include/wx/treectrl.h
src/common/treebase.cpp

index ab5f4399dcd7cb0558a83e56ef4c552985d45105..518391a689f1081e806228a1c5a547307bdd4641 100644 (file)
@@ -152,6 +152,7 @@ All (GUI):
 - Added wxTextAttr::Merge() (Marcin Simonides).
 - Added wxTB_NO_TOOLTIPS style (Igor Korot).
 - Added wxGenericDirCtrl::CollapsePath() (Christian Buhtz).
+- Added wxTreeCtrl::ExpandAllChildren() (Christian Buhtz)
 - Fixed 64-bit issue in wxNotebook causing segfaults on Tru64 Unix.
 - Made it possible to associate context help to a region of a window.
 - Added support for tabs in wxRichTextCtrl (Ashish More).
index 89f240e011ba29bf5ebce07487f269c1cb2f0507..f609fbed0b3e64d427ddb57d6eb6d5082903b44b 100644 (file)
@@ -331,6 +331,20 @@ Scrolls and/or expands items to ensure that the given item is visible.
 Expands the given item.
 
 
+\membersection{wxTreeCtrl::ExpandAll}\label{wxtreectrlexpandall}
+
+\func{void}{Expand}{\void}
+
+Expands all items in the tree.
+
+
+\membersection{wxTreeCtrl::ExpandAllChildren}\label{wxtreectrlexpandallchildren}
+
+\func{void}{ExpandAllChildren}{\param{const wxTreeItemId\&}{ item}}
+
+Expands the given item and all its children recursively.
+
+
 \membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect}
 
 \constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = {\tt false}}}
index cbf50e4bc58980e82edc7a255ccc299ffbda2009..e964012a4f4ae4a68017f9c593f7d413116a3e16 100644 (file)
@@ -287,6 +287,10 @@ public:
 
         // expand this item
     virtual void Expand(const wxTreeItemId& item) = 0;
+        // expand the item and all its childs and thats childs
+    void ExpandAllChildren(const wxTreeItemId& item);
+        // expand all items
+    void ExpandAll();
         // collapse the item without removing its children
     virtual void Collapse(const wxTreeItemId& item) = 0;
         // collapse the item and remove all children
index 8048795fc5e69fc093da91002479378c9d728bb4..798ed50d4720790ef77231266526db0af6685ce1 100644 (file)
@@ -109,7 +109,7 @@ wxTreeCtrlBase::~wxTreeCtrlBase()
 static void wxGetBestTreeSize(const wxTreeCtrlBase* treeCtrl, const wxTreeItemId& id, wxSize& size)
 {
     wxRect rect;
-    
+
     if ( treeCtrl->GetBoundingRect(id, rect, true) )
     {
         if ( size.x < rect.x + rect.width )
@@ -134,7 +134,7 @@ wxSize wxTreeCtrlBase::DoGetBestSize() const
     // this doesn't really compute the total bounding rectangle of all items
     // but a not too bad guess of it which has the advantage of not having to
     // examine all (potentially hundreds or thousands) items in the control
-    
+
     if (GetQuickBestSize())
     {
         for ( wxTreeItemId item = GetRootItem();
@@ -167,5 +167,26 @@ wxSize wxTreeCtrlBase::DoGetBestSize() const
     return size;
 }
 
+void wxTreeCtrlBase::ExpandAll()
+{
+    ExpandAllChildren(GetRootItem());
+}
+
+void wxTreeCtrlBase::ExpandAllChildren(const wxTreeItemId& item)
+{
+    // expand this item first, this might result in its children being added on
+    // the fly
+    Expand(item);
+
+    // then (recursively) expand all the children
+    wxTreeItemIdValue cookie;
+    for ( wxTreeItemId idCurr = GetFirstChild(item, cookie);
+          idCurr.IsOk();
+          idCurr = GetNextChild(item, cookie) )
+    {
+        ExpandAllChildren(idCurr);
+    }
+}
+
 #endif // wxUSE_TREECTRL