]> git.saurik.com Git - wxWidgets.git/commitdiff
Implement case-insensitive find and read only support for Cocoa combobox.
authorKevin Ollivier <kevino@theolliviers.com>
Mon, 15 Feb 2010 04:23:49 +0000 (04:23 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Mon, 15 Feb 2010 04:23:49 +0000 (04:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/cocoa/combobox.mm
src/osx/combobox_osx.cpp

index f18378013563df9b7e85908d63d6f8cd124cc4c1..3cdb19e247a219aadbc2e6fa666c3649d6b0d929 100644 (file)
@@ -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;
 }
index 856a5b31e9bf72a11336673c150db941841ae910..cd4fc9518a11aa066932b5458d1a075d7126436c 100644 (file)
@@ -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);
 }