X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c5d3832cfeaa3a0c810d36aaca6de1dd782a6721..6342bd1ab36c1957684c00d408d09fba65d33db6:/src/msw/listctrl.cpp?ds=sidebyside diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index 7904f4b673..cbe91c8878 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -29,14 +29,19 @@ #pragma hdrstop #endif +#ifdef __WIN95__ + #ifndef WX_PRECOMP - #include "wx/wx.h" + #include "wx/app.h" + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/settings.h" #endif -#ifdef __WIN95__ +#include "wx/textctrl.h" +#include "wx/imaglist.h" #include "wx/listctrl.h" -#include "wx/log.h" #include "wx/msw/private.h" @@ -204,8 +209,7 @@ bool wxListCtrl::DoCreateControl(int x, int y, int w, int h) if ( !m_hWnd ) { - wxLogError(_("Can't create list control window, check " - "that comctl32.dll is installed.")); + wxLogError(_("Can't create list control window, check that comctl32.dll is installed.")); return FALSE; } @@ -947,7 +951,7 @@ bool wxListCtrl::DeleteAllColumns() { if ( ListView_DeleteColumn(GetHwnd(), 0) == 0 ) { - wxLogLastError("ListView_DeleteColumn"); + wxLogLastError(wxT("ListView_DeleteColumn")); return FALSE; } @@ -1035,10 +1039,13 @@ long wxListCtrl::FindItem(long start, const wxString& str, bool partial) findInfo.flags = LVFI_STRING; if ( partial ) - findInfo.flags |= LVFI_STRING; - findInfo.psz = WXSTRINGCAST str; + findInfo.flags |= LVFI_PARTIAL; + findInfo.psz = str; - return ListView_FindItem(GetHwnd(), (int) start, & findInfo); + // ListView_FindItem() excludes the first item from search and to look + // through all the items you need to start from -1 which is unnatural and + // inconsitent with the generic version - so we adjust the index + return ListView_FindItem(GetHwnd(), (int) start - 1, &findInfo); } // Find an item whose data matches this data, starting from the item after 'start' @@ -1431,7 +1438,12 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) event.m_code = wxCharCodeMSWToWX(wVKey); } - event.m_item.m_data = GetItemData(lItem); + if ( lItem != -1 ) + { + // fill the other fields too + event.m_item.m_text = GetItemText(lItem); + event.m_item.m_data = GetItemData(lItem); + } } break; @@ -1453,6 +1465,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED; event.m_itemIndex = nmLV->iItem; + event.m_item.m_text = GetItemText(nmLV->iItem); event.m_item.m_data = GetItemData(nmLV->iItem); break;