diff --git a/include/wx/msw/treectrl.h b/include/wx/msw/treectrl.h index b4c5c75616..310d4cb34d 100644 --- a/include/wx/msw/treectrl.h +++ b/include/wx/msw/treectrl.h @@ -429,6 +429,9 @@ public: int GetState(const wxTreeItemId& node); protected: + virtual wxSize DoGetBestSize() const; + + // SetImageList helper void SetAnyImageList(wxImageList *imageList, int which); diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index 13edcec7c3..7f17ef8bbb 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -2137,6 +2137,26 @@ bool wxTreeCtrl::GetBoundingRect(const wxTreeItemId& item, } } +wxSize wxTreeCtrl::DoGetBestSize() const +{ + wxSize size; + wxRect rect; + for ( wxTreeItemId node = GetFirstVisibleItem(); + node.IsOk(); + node = GetNextVisible(node) ) + { + if ( GetBoundingRect(node, rect) ) + { + 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; + } + } + + return size; +} + // ---------------------------------------------------------------------------- // sorting stuff // ----------------------------------------------------------------------------