From: Kevin Ollivier Date: Mon, 15 Feb 2010 04:23:49 +0000 (+0000) Subject: Implement case-insensitive find and read only support for Cocoa combobox. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ec073e73d1e365cc8eb6f930e7415b07c4ba0724 Implement case-insensitive find and read only support for Cocoa combobox. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/cocoa/combobox.mm b/src/osx/cocoa/combobox.mm index f183780135..3cdb19e247 100644 --- a/src/osx/cocoa/combobox.mm +++ b/src/osx/cocoa/combobox.mm @@ -137,11 +137,13 @@ wxWidgetImplType* wxWidgetImpl::CreateComboBox( wxWindowMac* wxpeer, wxMenu* menu, const wxPoint& pos, const wxSize& size, - long WXUNUSED(style), + long style, long WXUNUSED(extraStyle)) { NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ; wxNSComboBox* v = [[wxNSComboBox alloc] initWithFrame:r]; + if (style & wxCB_READONLY) + [v setEditable:NO]; wxNSComboBoxControl* c = new wxNSComboBoxControl( wxpeer, v ); return c; } diff --git a/src/osx/combobox_osx.cpp b/src/osx/combobox_osx.cpp index 856a5b31e9..cd4fc9518a 100644 --- a/src/osx/combobox_osx.cpp +++ b/src/osx/combobox_osx.cpp @@ -63,9 +63,6 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id, if ( !wxControl::Create( parent, id, pos, size, style, validator, name ) ) return false; - wxASSERT_MSG( !(style & wxCB_READONLY), - "wxCB_READONLY not supported, use wxChoice instead" ); - wxASSERT_MSG( !(style & wxCB_SORT), "wxCB_SORT not currently supported by wxOSX/Cocoa"); @@ -173,8 +170,15 @@ void wxComboBox::SetSelection(long from, long to) int wxComboBox::FindString(const wxString& s, bool bCase) const { - wxASSERT_MSG(bCase, "wxComboBox::FindString() doesn't currently support case " - "insensitive search in wxOSX/Cocoa"); + if (!bCase) + { + for (int i = 0; i < GetCount(); i++) + { + if (s.IsSameAs(GetString(i), false)) + return i; + } + return wxNOT_FOUND; + } return GetComboPeer()->FindString(s); }