X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d2ed74b912261bd91b33affbd63acfbca4c2b371..98de2b68055019d20b172d162032e23be2dfbb12:/src/msw/listctrl.cpp diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index fc54c0de72..37cc646f05 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -45,6 +45,12 @@ #include "wx/msw/private.h" +#if defined(__WXWINCE__) + #include + #include + #include +#endif + // include "properly" #include "wx/msw/wrapcctl.h" @@ -1802,6 +1808,9 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) event.m_col = nmHDR->iItem; break; +#ifdef __WXWINCE__ + case GN_CONTEXTMENU: +#endif //__WXWINCE__ case NM_RCLICK: { eventType = wxEVT_COMMAND_LIST_COL_RIGHT_CLICK; @@ -1813,6 +1822,11 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) // where did the click occur? POINT ptClick; +#ifdef __WXWINCE__ + if(nmhdr->code == GN_CONTEXTMENU) { + ptClick = ((NMRGINFO*)nmhdr)->ptAction; + } else +#endif //__WXWINCE__ if ( !::GetCursorPos(&ptClick) ) { wxLogLastError(_T("GetCursorPos")); @@ -2128,6 +2142,9 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) event.m_item.m_data = GetItemData(iItem); break; +#ifdef __WXWINCE__ + case GN_CONTEXTMENU: +#endif //__WXWINCE__ case NM_RCLICK: // if the user processes it in wxEVT_COMMAND_RIGHT_CLICK(), // don't do anything else @@ -2140,6 +2157,11 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) LV_HITTESTINFO lvhti; wxZeroMemory(lvhti); +#ifdef __WXWINCE__ + if(nmhdr->code == GN_CONTEXTMENU) { + lvhti.pt = ((NMRGINFO*)nmhdr)->ptAction; + } else +#endif //__WXWINCE__ ::GetCursorPos(&(lvhti.pt)); ::ScreenToClient(GetHwnd(),&(lvhti.pt)); if ( ListView_HitTest(GetHwnd(),&lvhti) != -1 ) @@ -2460,7 +2482,8 @@ void wxListCtrl::SetItemCount(long count) { wxASSERT_MSG( IsVirtual(), _T("this is for virtual controls only") ); - if ( !::SendMessage(GetHwnd(), LVM_SETITEMCOUNT, (WPARAM)count, LVSICF_NOSCROLL) ) + if ( !::SendMessage(GetHwnd(), LVM_SETITEMCOUNT, (WPARAM)count, + LVSICF_NOSCROLL | LVSICF_NOINVALIDATEALL) ) { wxLogLastError(_T("ListView_SetItemCount")); }