forked from mirror/freedownload
/
fsContextHelpMgr.cpp
93 lines (71 loc) · 1.9 KB
/
fsContextHelpMgr.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
Free Download Manager Copyright (c) 2003-2016 FreeDownloadManager.ORG
*/
#include "stdafx.h"
#include "FdmApp.h"
#include "fsContextHelpMgr.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
fsContextHelpMgr::fsContextHelpMgr()
{
m_bInWT = FALSE;
}
fsContextHelpMgr::~fsContextHelpMgr()
{
}
void fsContextHelpMgr::PrepareContextMenu(CDialog *pDlg, CPoint point, fsCtrlContextHelp* pCtrls, int cCtrls)
{
m_pLastCtrls = pCtrls;
m_cLastCtrls = cCtrls;
m_pLastDlg = pDlg;
m_ptLast = point;
m_iLastCtrl = FindControl (point);
if (m_iLastCtrl == -1)
return;
}
int fsContextHelpMgr::FindControl(CPoint pt)
{
for (int i = 0; i < m_cLastCtrls; i++)
{
CWnd* pCtrl = m_pLastDlg->GetDlgItem (m_pLastCtrls [i].nIDCtrl);
if (pCtrl->IsWindowVisible () == FALSE)
continue;
CRect rcCtrl;
pCtrl->GetWindowRect (&rcCtrl);
if (PtInRect (&rcCtrl, pt))
return i;
}
return -1;
}
void fsContextHelpMgr::OnWT()
{
if (m_bInWT)
return;
if (m_iLastCtrl == -1)
return;
m_bInWT = TRUE;
HH_POPUP popup;
ZeroMemory (&popup, sizeof (popup));
popup.cbStruct = sizeof (popup);
popup.pszText = m_pLastCtrls [m_iLastCtrl].pszDesc;
popup.pt = m_ptLast;
popup.clrForeground = UINT (-1);
popup.clrBackground = UINT (-1);
popup.rcMargins = CRect (-1, -1, -1, -1);
popup.pszFont = _T("MS Sans Serif, 8, DEFAULT_CHARSET");
HtmlHelp (m_pLastDlg->m_hWnd, NULL, HH_DISPLAY_TEXT_POPUP, (DWORD) &popup);
m_bInWT = FALSE;
}
void fsContextHelpMgr::ShowMenu()
{
if (m_iLastCtrl == -1)
return;
CMenu menu;
menu.LoadMenu (IDM_WT);
CMenu *popup = menu.GetSubMenu (0);
popup->ModifyMenu (ID_WHATISTHIS, MF_BYCOMMAND|MF_STRING, ID_WHATISTHIS, LS (L_WHATISTHIS));
popup->TrackPopupMenu (TPM_RIGHTBUTTON | TPM_TOPALIGN | TPM_LEFTALIGN, m_ptLast.x, m_ptLast.y, m_pLastDlg);
}