From: David Elliott Date: Mon, 18 Feb 2008 21:51:29 +0000 (+0000) Subject: Limit wxListBox best size to 100x100. Particularly important on trunk where X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c86ec17bcdf0c50d0987c862eed6abaae7990aa1 Limit wxListBox best size to 100x100. Particularly important on trunk where 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 --- diff --git a/include/wx/cocoa/listbox.h b/include/wx/cocoa/listbox.h index d7bae5cb52..2d4c74b94e 100644 --- a/include/wx/cocoa/listbox.h +++ b/include/wx/cocoa/listbox.h @@ -84,6 +84,7 @@ protected: // Implementation // ------------------------------------------------------------------------ public: + virtual wxSize DoGetBestSize() const; // pure virtuals from wxListBoxBase virtual bool IsSelected(int n) const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/src/cocoa/listbox.mm b/src/cocoa/listbox.mm index 969dff9445..3731f9461b 100644 --- a/src/cocoa/listbox.mm +++ b/src/cocoa/listbox.mm @@ -173,6 +173,20 @@ The listbox contents are sorted in alphabetical order. 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];