1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008, 2010-2011 - TortoiseSVN
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 * Extends the MFC CToolTipCtrl with convenience methods for dialogs and
27 * provides mechanism to use tooltips longer than 80 chars whithout having
28 * to implement the TTN_NEEDTEXT handler in every dialog.
30 class CToolTips
: public CToolTipCtrl
34 virtual BOOL
Create(CWnd
* pParentWnd
, DWORD dwStyle
= 0)
36 m_pParentWnd
= pParentWnd
;
37 m_pParentWnd
->EnableToolTips();
38 BOOL bRet
= CToolTipCtrl::Create(pParentWnd
, dwStyle
);
40 SetDelayTime (TTDT_AUTOPOP
, 30000);
43 CToolTips() : CToolTipCtrl(), m_pParentWnd(NULL
) {}
44 virtual ~CToolTips() {}
46 BOOL
AddTool(CWnd
* pWnd
, UINT nIDText
, LPCRECT lpRectTool
= NULL
, UINT_PTR nIDTool
= 0);
47 BOOL
AddTool(CWnd
* pWnd
, LPCTSTR lpszText
= LPSTR_TEXTCALLBACK
, LPCRECT lpRectTool
= NULL
, UINT_PTR nIDTool
= 0);
48 void AddTool(int nIdWnd
, UINT nIdText
, LPCRECT lpRectTool
= NULL
, UINT_PTR nIDTool
= 0);
49 void AddTool(int nIdWnd
, CString sBalloonTipText
, LPCRECT lpRectTool
= NULL
, UINT_PTR nIDTool
= 0);
50 void DelTool(CWnd
* pWnd
, UINT_PTR nIDTool
= 0);
51 void DelTool(int nIdWnd
, UINT_PTR nIDTool
= 0);
53 static BOOL
ShowBalloon(CWnd
* pWnd
, UINT nIDText
, UINT nIDTitle
, UINT icon
= 0);
54 void ShowBalloon(int nIdWnd
, UINT nIdText
, UINT nIDTitle
, UINT icon
= 0);
55 void RelayEvent(LPMSG lpMsg
, CWnd
* dlgWnd
= NULL
);
58 afx_msg BOOL
OnTtnNeedText(NMHDR
*pNMHDR
, LRESULT
*pResult
);
62 std::map
<UINT
, CString
> toolTextMap
;
64 static CString
LoadTooltip( UINT nIDText
);