X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/72247c2f537ab53e4a2b80e50e7050083a5fdf53..6a57bd93ad118049af9a5b2c07e01254f625f6a2:/src/osx/combobox_osx.cpp diff --git a/src/osx/combobox_osx.cpp b/src/osx/combobox_osx.cpp index 856a5b31e9..214bdbdff4 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"); @@ -75,8 +72,10 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id, Append(n, choices); - // Set the first item as being selected - if (n > 0) + // Set up the initial value, by default the first item is selected. + if ( !value.empty() ) + SetValue(value); + else if (n > 0) SetSelection( 0 ); // Needed because it is a wxControlWithItems @@ -148,7 +147,6 @@ void wxComboBox::DoDeleteOneItem(unsigned int n) void wxComboBox::DoClear() { GetComboPeer()->Clear(); - SetValue(wxEmptyString); } void wxComboBox::GetSelection(long *from, long *to) const @@ -173,8 +171,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 (unsigned i = 0; i < GetCount(); i++) + { + if (s.IsSameAs(GetString(i), false)) + return i; + } + return wxNOT_FOUND; + } return GetComboPeer()->FindString(s); } @@ -196,12 +201,13 @@ void wxComboBox::SetString(unsigned int n, const wxString& s) SetValue(s); // changing the item in the list won't update the display item } -void wxComboBox::EnableTextChangedEvents(bool enable) +void wxComboBox::EnableTextChangedEvents(bool WXUNUSED(enable)) { - wxFAIL_MSG("Method Not Implemented."); + // nothing to do here, events are never generated when we change the + // control value programmatically anyhow by Cocoa } -bool wxComboBox::OSXHandleClicked( double timestampsec ) +bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) ) { wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId ); event.SetInt(GetSelection()); @@ -211,11 +217,6 @@ bool wxComboBox::OSXHandleClicked( double timestampsec ) return true; } -wxTextWidgetImpl* wxComboBox::GetTextPeer() const -{ - return dynamic_cast (m_peer); -} - wxComboWidgetImpl* wxComboBox::GetComboPeer() const { return dynamic_cast (m_peer);