From: Vadim Zeitlin Date: Sat, 6 May 2006 19:05:50 +0000 (+0000) Subject: added InitCommandEventWithItems() and call it from wxChoice and wxComboBox code to... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4c15a375928725aa288cf85147b10006e4a7dfd4 added InitCommandEventWithItems() and call it from wxChoice and wxComboBox code to ensure that per item client data is set correctly in the generated events (replaces patch 1476171; closes bug 1470505) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/ctrlsub.cpp b/src/common/ctrlsub.cpp index d2bc3e8ef2..c94e8f2ca3 100644 --- a/src/common/ctrlsub.cpp +++ b/src/common/ctrlsub.cpp @@ -172,6 +172,23 @@ void *wxItemContainer::GetClientData(unsigned int n) const return DoGetItemClientData(n); } +// ============================================================================ +// wxControlWithItems implementation +// ============================================================================ + +void wxControlWithItems::InitCommandEventWithItems(wxCommandEvent& event, int n) +{ + InitCommandEvent(event); + + if ( n != wxNOT_FOUND ) + { + if ( HasClientObjectData() ) + event.SetClientObject(GetClientObject(n)); + else if ( HasClientUntypedData() ) + event.SetClientData(GetClientData(n)); + } +} + wxControlWithItems::~wxControlWithItems() { // this destructor is required for Darwin