]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/treebase.cpp
Do not send a changed event if a button is clicked for down/up when the control is...
[wxWidgets.git] / src / common / treebase.cpp
index 252415eae46880a1d7a915d0fdca221fe9fb3f9a..bf992729d44a2538fef190dc122a63b8fbfd3770 100644 (file)
@@ -76,6 +76,13 @@ wxTreeEvent::wxTreeEvent(wxEventType commandType,
         SetClientObject(tree->GetItemData(item));
 }
 
+wxTreeEvent::wxTreeEvent(wxEventType commandType, int id)
+           : wxNotifyEvent(commandType, id)
+{
+    m_itemOld = 0l;
+    m_editCancelled = false;
+}
+
 wxTreeEvent::wxTreeEvent(const wxTreeEvent & event)
            : wxNotifyEvent(event)
 {
@@ -102,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 )
@@ -114,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);
     }
@@ -127,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();
@@ -160,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