X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94e0018723919fe2ca2f5b5f0a42804c16dbf3a1..cc4d5638c66a409e421420ed7110917755a66788:/src/osx/combobox_osx.cpp diff --git a/src/osx/combobox_osx.cpp b/src/osx/combobox_osx.cpp index fe9f812f75..faf325a867 100644 --- a/src/osx/combobox_osx.cpp +++ b/src/osx/combobox_osx.cpp @@ -4,7 +4,6 @@ // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -131,11 +130,13 @@ unsigned int wxComboBox::GetCount() const void wxComboBox::DoDeleteOneItem(unsigned int n) { + m_datas.RemoveAt(n); GetComboPeer()->RemoveItem(n); } void wxComboBox::DoClear() { + m_datas.Clear(); GetComboPeer()->Clear(); } @@ -187,10 +188,21 @@ wxString wxComboBox::GetStringSelection() const return sel == wxNOT_FOUND ? wxString() : GetString(sel); } +void wxComboBox::SetValue(const wxString& value) +{ + if ( HasFlag(wxCB_READONLY) ) + SetStringSelection( value ) ; + else + wxTextEntry::SetValue( value ); +} + void wxComboBox::SetString(unsigned int n, const wxString& s) { - Delete(n); - Insert(s, n); + // Notice that we shouldn't delete and insert the item in this control + // itself as this would also affect the client data which we need to + // preserve here. + GetComboPeer()->RemoveItem(n); + GetComboPeer()->InsertItem(n, s); SetValue(s); // changing the item in the list won't update the display item } @@ -202,7 +214,7 @@ void wxComboBox::EnableTextChangedEvents(bool WXUNUSED(enable)) bool wxComboBox::OSXHandleClicked( double WXUNUSED(timestampsec) ) { - wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId ); + wxCommandEvent event(wxEVT_COMBOBOX, m_windowId ); event.SetInt(GetSelection()); event.SetEventObject(this); event.SetString(GetStringSelection()); @@ -215,4 +227,14 @@ wxComboWidgetImpl* wxComboBox::GetComboPeer() const return dynamic_cast (GetPeer()); } +void wxComboBox::Popup() +{ + GetComboPeer()->Popup(); +} + +void wxComboBox::Dismiss() +{ + GetComboPeer()->Dismiss(); +} + #endif // wxUSE_COMBOBOX && wxOSX_USE_COCOA