delete m_imageListState;
}
-static void wxGetBestTreeSize(const wxTreeCtrlBase* treeCtrl, const wxTreeItemId& id, wxSize& size)
+static void
+wxGetBestTreeSize(const wxTreeCtrlBase* treeCtrl, wxTreeItemId id, wxSize& size)
{
wxRect rect;
- if ( treeCtrl->GetBoundingRect(id, rect, true) )
+ if ( treeCtrl->GetBoundingRect(id, rect, true /* just the item */) )
{
- if ( size.x < rect.x + rect.width )
- size.x = rect.x + rect.width;
- if ( size.y < rect.y + rect.height )
- size.y = rect.y + rect.height;
+ size.IncTo(wxSize(rect.GetRight(), rect.GetBottom()));
}
wxTreeItemIdValue cookie;
}
}
}
- else
+ else // use precise, if potentially slow, size computation method
+ {
+ // iterate over all items recursively
wxGetBestTreeSize(this, GetRootItem(), size);
+ }
// need some minimal size even for empty tree
if ( !size.x || !size.y )