]> git.saurik.com Git - wxWidgets.git/commitdiff
added InitCommandEventWithItems() and call it from wxChoice and wxComboBox code to...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 6 May 2006 15:48:27 +0000 (15:48 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 6 May 2006 15:48:27 +0000 (15:48 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/ctrlsub.h
src/msw/choice.cpp
src/msw/combobox.cpp

index d27f0102ed5de6336591f2c568466b93f4c7e216..e6ad7e9f71a1c69819635d164ceb4f8c8faf2942 100644 (file)
@@ -144,6 +144,7 @@ protected:
     virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData) = 0;
     virtual wxClientData* DoGetItemClientObject(unsigned int n) const = 0;
 
+
     // the type of the client data for the items
     wxClientDataType m_clientDataItemsType;
 };
@@ -197,6 +198,12 @@ protected:
     // ctors for this to work!
     virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { }
 
+    // fill in the client object or data field of the event as appropriate
+    //
+    // calls InitCommandEvent() and, if n != wxNOT_FOUND, also sets the per
+    // item client data
+    void InitCommandEventWithItems(wxCommandEvent& event, int n);
+
 private:
     DECLARE_ABSTRACT_CLASS(wxControlWithItems)
     DECLARE_NO_COPY_CLASS(wxControlWithItems)
index 144165341854a637716337d0f37897ea88305a2f..3dcb4aa42abc2af7a3997da271200bd98c1e7fa7 100644 (file)
@@ -741,10 +741,7 @@ bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
                 if ( n > -1 )
                 {
                     event.SetString(GetStringSelection());
-                    if ( HasClientObjectData() )
-                        event.SetClientObject( GetClientObject(n) );
-                    else if ( HasClientUntypedData() )
-                        event.SetClientData( GetClientData(n) );
+                    InitCommandEventWithItems(event, n);
                 }
 
                 ProcessCommand(event);
index dc948b01dee54d40016c1f6951acf36541823ce9..61908d5fdcce235b62cd495f6ccfb8365e1d5cee 100644 (file)
@@ -259,9 +259,12 @@ bool wxComboBox::MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam)
             if ( wParam == VK_RETURN )
             {
                 wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
-                InitCommandEvent(event);
+
+                const int sel = GetSelection();
+                event.SetInt(sel);
                 event.SetString(GetValue());
-                event.SetInt(GetSelection());
+                InitCommandEventWithItems(event, sel);
+
                 if ( ProcessCommand(event) )
                 {
                     // don't let the event through to the native control
@@ -313,9 +316,10 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id)
             value = GetStringSelection();
             {
                 wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, GetId());
-                event.SetEventObject(this);
                 event.SetInt(sel);
                 event.SetString(value);
+                InitCommandEventWithItems(event, sel);
+
                 ProcessCommand(event);
             }
 
@@ -326,7 +330,6 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id)
         case CBN_EDITCHANGE:
             {
                 wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId());
-                event.SetEventObject(this);
 
                 // if sel != -1, value was already initialized above
                 if ( sel == -1 )
@@ -335,6 +338,8 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id)
                 }
 
                 event.SetString(value);
+                InitCommandEventWithItems(event, sel);
+
                 ProcessCommand(event);
             }
             break;