]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/treebase.cpp
Combine two wxImage-to-pixmap creation functions into one.
[wxWidgets.git] / src / common / treebase.cpp
index 8048795fc5e69fc093da91002479378c9d728bb4..bf992729d44a2538fef190dc122a63b8fbfd3770 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 )
@@ -121,7 +121,7 @@ static void wxGetBestTreeSize(const wxTreeCtrlBase* treeCtrl, const wxTreeItemId
     wxTreeItemIdValue cookie;
     for ( wxTreeItemId item = treeCtrl->GetFirstChild(id, cookie);
           item.IsOk();
-          item = treeCtrl->GetNextChild(item, cookie) )
+          item = treeCtrl->GetNextChild(id, cookie) )
     {
         wxGetBestTreeSize(treeCtrl, item, size);
     }
@@ -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