+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);
+    }
+}
+