X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c76b1a30faba8015cf9cb223cd0e01cb0d2f64d7..ce51dc7507f31a6baadb8709ac4b807cd2dad421:/src/msw/listbox.cpp diff --git a/src/msw/listbox.cpp b/src/msw/listbox.cpp index a274222a8a..ea6f4cf692 100644 --- a/src/msw/listbox.cpp +++ b/src/msw/listbox.cpp @@ -6,7 +6,7 @@ // Created: // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -36,12 +36,6 @@ #include -#ifdef __WXWINE__ - #if defined(GetWindowStyle) - #undef GetWindowStyle - #endif -#endif - #include "wx/dynarray.h" #include "wx/log.h" @@ -55,34 +49,7 @@ #endif #endif -#ifdef __WXWINE__ - #ifndef ListBox_SetItemData - #define ListBox_SetItemData(hwndCtl, index, data) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_SETITEMDATA, (WPARAM)(int)(index), (LPARAM)(data))) - #endif - #ifndef ListBox_GetHorizontalExtent - #define ListBox_GetHorizontalExtent(hwndCtl) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETHORIZONTALEXTENT, 0L, 0L)) - #endif - #ifndef ListBox_GetSelCount - #define ListBox_GetSelCount(hwndCtl) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETSELCOUNT, 0L, 0L)) - #endif - #ifndef ListBox_GetSelItems - #define ListBox_GetSelItems(hwndCtl, cItems, lpItems) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETSELITEMS, (WPARAM)(int)(cItems), (LPARAM)(int *)(lpItems))) - #endif - #ifndef ListBox_GetTextLen - #define ListBox_GetTextLen(hwndCtl, index) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETTEXTLEN, (WPARAM)(int)(index), 0L)) - #endif - #ifndef ListBox_GetText - #define ListBox_GetText(hwndCtl, index, lpszBuffer) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETTEXT, (WPARAM)(int)(index), (LPARAM)(LPCTSTR)(lpszBuffer))) - #endif -#endif - - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) // ============================================================================ // list box item declaration and implementation @@ -708,20 +675,17 @@ bool wxListBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) wxCommandEvent event(evtType, m_windowId); event.SetEventObject( this ); - wxArrayInt aSelections; - int n, count = GetSelections(aSelections); - if ( count > 0 ) + // retrieve the affected item + int n = SendMessage(GetHwnd(), LB_GETCARETINDEX, 0, 0); + if ( n != LB_ERR ) { - n = aSelections[0]; if ( HasClientObjectData() ) event.SetClientObject( GetClientObject(n) ); else if ( HasClientUntypedData() ) event.SetClientData( GetClientData(n) ); + event.SetString( GetString(n) ); - } - else - { - n = -1; + event.SetExtraLong( HasMultipleSelection() ? IsSelected(n) : TRUE ); } event.m_commandInt = n;