the best size is not cached and will thus keep telling the sizers that the
best size is the full size of the content (i.e. such that you wouldn't need
to scroll it).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51894
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// Implementation
// ------------------------------------------------------------------------
public:
+ virtual wxSize DoGetBestSize() const;
// pure virtuals from wxListBoxBase
virtual bool IsSelected(int n) const;
virtual int GetSelections(wxArrayInt& aSelections) const;
return true;
}
+wxSize wxListBox::DoGetBestSize() const
+{
+ wxSize size = wxControlWithItems::DoGetBestSize();
+ // Limit best size to 100x100. It can be smaller if none of the items are very
+ // wide or if there aren't many items, but anything bigger than 100x100 ought
+ // to be asked for by the programmer. The 100x100 size is based on being barely
+ // enough for a scroller to be usable.
+ if(size.GetWidth() > 100)
+ size.SetWidth(100);
+ if(size.GetHeight() > 100)
+ size.SetHeight(100);
+ return size;
+}
+
wxListBox::~wxListBox()
{
[GetNSTableView() setDataSource: nil];