Added context menu support under PocketPC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -110,6 +110,12 @@
|
||||
|
||||
#if defined(__WXWINCE__)
|
||||
#include "wx/msw/wince/missing.h"
|
||||
#ifdef __POCKETPC__
|
||||
#include <windows.h>
|
||||
#include <shellapi.h>
|
||||
#include <ole2.h>
|
||||
#include <aygshell.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(TME_LEAVE) && defined(WM_MOUSELEAVE)
|
||||
@@ -487,6 +493,10 @@ void wxWindowMSW::Init()
|
||||
|
||||
m_pendingPosition = wxDefaultPosition;
|
||||
m_pendingSize = wxDefaultSize;
|
||||
|
||||
#ifdef __POCKETPC__
|
||||
m_contextMenuEnabled = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Destructor
|
||||
@@ -2582,6 +2592,35 @@ WXLRESULT wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM l
|
||||
wxCHECK_MSG( win, 0,
|
||||
_T("FindWindowForMouseEvent() returned NULL") );
|
||||
}
|
||||
#ifdef __POCKETPC__
|
||||
if (IsContextMenuEnabled() && message == WM_LBUTTONDOWN)
|
||||
{
|
||||
SHRGINFO shrgi = {0};
|
||||
|
||||
shrgi.cbSize = sizeof(SHRGINFO);
|
||||
shrgi.hwndClient = (HWND) GetHWND();
|
||||
shrgi.ptDown.x = x;
|
||||
shrgi.ptDown.y = y;
|
||||
|
||||
shrgi.dwFlags = SHRG_RETURNCMD;
|
||||
// shrgi.dwFlags = SHRG_NOTIFYPARENT;
|
||||
|
||||
if (GN_CONTEXTMENU == ::SHRecognizeGesture(&shrgi))
|
||||
{
|
||||
wxPoint pt(x, y);
|
||||
pt = ClientToScreen(pt);
|
||||
|
||||
wxContextMenuEvent evtCtx(wxEVT_CONTEXT_MENU, GetId(), pt);
|
||||
|
||||
evtCtx.SetEventObject(this);
|
||||
if (GetEventHandler()->ProcessEvent(evtCtx))
|
||||
processed = true;
|
||||
else
|
||||
return MSWDefWindowProc(message, wParam, lParam);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#else // !__WXWINCE__
|
||||
wxWindowMSW *win = this;
|
||||
#endif // __WXWINCE__/!__WXWINCE__
|
||||
|
Reference in New Issue
Block a user