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];