X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec073e73d1e365cc8eb6f930e7415b07c4ba0724..66f75561893ea7b4bf429d1882d9cc0407ba932d:/src/osx/combobox_osx.cpp diff --git a/src/osx/combobox_osx.cpp b/src/osx/combobox_osx.cpp index cd4fc9518a..9790bb95dc 100644 --- a/src/osx/combobox_osx.cpp +++ b/src/osx/combobox_osx.cpp @@ -4,7 +4,7 @@ // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id: combobox_osx.cpp 58318 2009-01-23 08:36:16Z RR $ +// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -72,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 @@ -145,7 +147,6 @@ void wxComboBox::DoDeleteOneItem(unsigned int n) void wxComboBox::DoClear() { GetComboPeer()->Clear(); - SetValue(wxEmptyString); } void wxComboBox::GetSelection(long *from, long *to) const @@ -172,7 +173,7 @@ int wxComboBox::FindString(const wxString& s, bool bCase) const { if (!bCase) { - for (int i = 0; i < GetCount(); i++) + for (unsigned i = 0; i < GetCount(); i++) { if (s.IsSameAs(GetString(i), false)) return i; @@ -185,12 +186,15 @@ int wxComboBox::FindString(const wxString& s, bool bCase) const wxString wxComboBox::GetString(unsigned int n) const { + wxCHECK_MSG( n < GetCount(), wxString(), "Invalid combobox index" ); + return GetComboPeer()->GetStringAtIndex(n); } wxString wxComboBox::GetStringSelection() const { - return GetString(GetSelection()); + const int sel = GetSelection(); + return sel == wxNOT_FOUND ? wxString() : GetString(sel); } void wxComboBox::SetString(unsigned int n, const wxString& s) @@ -200,12 +204,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()); @@ -215,11 +220,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);