Set string in wxEVT_COMMAND_COMBOBOX_SELECTED event in wxOSX/Cocoa.

Pass the selected string and not only its index in the event generated when
combobox selection changes in wxOSX/Cocoa.

Closes #14383.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-02 15:03:00 +00:00
parent 8b883c9de8
commit 2de58153db
2 changed files with 11 additions and 2 deletions

View File

@@ -672,6 +672,12 @@ void ComboboxWidgetsPage::OnComboBox(wxCommandEvent& event)
wxLogMessage(wxT("Combobox item %ld selected"), sel);
wxLogMessage(wxT("Combobox GetValue(): %s"), m_combobox->GetValue().c_str() );
if ( event.GetString() != m_combobox->GetValue() )
{
wxLogMessage("ERROR: Event has different string \"%s\"",
event.GetString());
}
}
void ComboboxWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))

View File

@@ -76,11 +76,14 @@
wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self );
if ( impl && impl->ShouldSendEvents())
{
wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer();
wxComboBox* wxpeer = static_cast<wxComboBox*>(impl->GetWXPeer());
if ( wxpeer ) {
const int sel = wxpeer->GetSelection();
wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, wxpeer->GetId());
event.SetEventObject( wxpeer );
event.SetInt( static_cast<wxComboBox*>(wxpeer)->GetSelection() );
event.SetInt( sel );
event.SetString( wxpeer->GetString(sel) );
// For some reason, wxComboBox::GetValue will not return the newly selected item
// while we're inside this callback, so use AddPendingEvent to make sure
// GetValue() returns the right value.