Added support for item clicks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1197,7 +1197,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
switch ( hdr1->code )
|
switch ( hdr1->code )
|
||||||
{
|
{
|
||||||
case LVN_BEGINRDRAG:
|
case LVN_BEGINRDRAG:
|
||||||
eventType = wxEVT_COMMAND_LIST_BEGIN_RDRAG;
|
eventType = wxEVT_COMMAND_LIST_BEGIN_RDRAG;
|
||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case LVN_BEGINDRAG:
|
case LVN_BEGINDRAG:
|
||||||
@@ -1344,6 +1344,54 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED;
|
eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NM_RCLICK:
|
||||||
|
/* TECH NOTE: NM_RCLICK isn't really good enough here. We want to
|
||||||
|
subclass and check for the actual WM_RBUTTONDOWN message, because
|
||||||
|
NM_RCLICK waits for the WM_RBUTTONUP message as well before firing off.
|
||||||
|
We want to have notify events for both down -and- up. */
|
||||||
|
{
|
||||||
|
// if the user processes it in wxEVT_COMMAND_RIGHT_CLICK(), don't do
|
||||||
|
// anything else
|
||||||
|
if ( wxControl::MSWOnNotify(idCtrl, lParam, result) ) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// else translate it into wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK event
|
||||||
|
LVHITTESTINFO lvhti;
|
||||||
|
#ifdef __GNUWIN32__
|
||||||
|
memset(&lvhti,0,sizeof(LVHITTESTINFO));
|
||||||
|
#else
|
||||||
|
ZeroMemory(&lvhti, sizeof(LVHITTESTINFO)); // must set all fields to 0
|
||||||
|
#endif
|
||||||
|
::GetCursorPos(&(lvhti.pt));
|
||||||
|
::ScreenToClient(GetHwnd(),&(lvhti.pt));
|
||||||
|
if(ListView_HitTest(GetHwnd(),&lvhti)!=-1) {
|
||||||
|
if(lvhti.flags & LVHT_ONITEM) {
|
||||||
|
eventType = wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK;
|
||||||
|
event.m_itemIndex = lvhti.iItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
case NM_MCLICK: // ***** THERE IS NO NM_MCLICK. Subclass anyone? ******
|
||||||
|
{
|
||||||
|
// if the user processes it in wxEVT_COMMAND_MIDDLE_CLICK(), don't do
|
||||||
|
// anything else
|
||||||
|
if ( wxControl::MSWOnNotify(idCtrl, lParam, result) )
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// else translate it into wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK event
|
||||||
|
eventType = wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK;
|
||||||
|
NMITEMACTIVATE* hdr = (NMITEMACTIVATE*)lParam;
|
||||||
|
event.m_itemIndex = hdr->iItem;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
*/
|
||||||
|
|
||||||
case LVN_SETDISPINFO:
|
case LVN_SETDISPINFO:
|
||||||
{
|
{
|
||||||
eventType = wxEVT_COMMAND_LIST_SET_INFO;
|
eventType = wxEVT_COMMAND_LIST_SET_INFO;
|
||||||
|
Reference in New Issue
Block a user