X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3b5db4b25043b35e93215b36e4d82e0e163fe43..a485ee6f5a09c84e2a3164ad0d7d4cbf3662a434:/src/mac/carbon/combobox.cpp?ds=sidebyside diff --git a/src/mac/carbon/combobox.cpp b/src/mac/carbon/combobox.cpp index 6b5d168080..f158ee702e 100644 --- a/src/mac/carbon/combobox.cpp +++ b/src/mac/carbon/combobox.cpp @@ -40,7 +40,11 @@ MenuHandle NewUniqueMenu() // the margin between the text control and the choice static const wxCoord MARGIN = 2; +#if TARGET_API_MAC_OSX +static const int POPUPWIDTH = 24; +#else static const int POPUPWIDTH = 18; +#endif static const int POPUPHEIGHT = 23; @@ -55,6 +59,9 @@ public: : wxTextCtrl( cb , 1 ) { m_cb = cb; + + // remove the default minsize, the combobox will have one instead + SetSizeHints(-1,-1); } protected: @@ -135,6 +142,9 @@ public: : wxChoice( cb , 1 ) { m_cb = cb; + + // remove the default minsize, the combobox will have one instead + SetSizeHints(-1,-1); } protected: @@ -149,6 +159,13 @@ protected: event2.SetString(m_cb->GetStringSelection()); m_cb->ProcessCommand(event2); } + virtual wxSize DoGetBestSize() const + { + wxSize sz = wxChoice::DoGetBestSize() ; + if (! m_cb->HasFlag(wxCB_READONLY) ) + sz.x = POPUPWIDTH; + return sz ; + } private: wxComboBox *m_cb; @@ -290,7 +307,7 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id, } m_choice = new wxComboBoxChoice(this, style ); - + m_choice->SetSizeHints( wxSize( POPUPWIDTH , POPUPHEIGHT ) ) ; wxSize csize = size; if ( style & wxCB_READONLY ) { @@ -332,6 +349,11 @@ wxString wxComboBox::GetValue() const return result; } +int wxComboBox::GetCount() const +{ + return m_choice->GetCount() ; +} + void wxComboBox::SetValue(const wxString& value) { int s = FindString (value);