Sync TortoiseIDiff and TortoiseUDiff from TortoiseSVN
[TortoiseGit.git] / src / Utils / MiscUI / Tooltip.h
blobc72397735d5eba8a778507681e968ffb560b3f41
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.
19 #pragma once
24 /**
25 * \ingroup Utils
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
32 // Construction
33 public:
34 virtual BOOL Create(CWnd* pParentWnd, DWORD dwStyle = 0)
36 m_pParentWnd = pParentWnd;
37 m_pParentWnd->EnableToolTips();
38 BOOL bRet = CToolTipCtrl::Create(pParentWnd, dwStyle);
39 SetMaxTipWidth(600);
40 SetDelayTime (TTDT_AUTOPOP, 30000);
41 return bRet;
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);
57 DECLARE_MESSAGE_MAP()
58 afx_msg BOOL OnTtnNeedText(NMHDR *pNMHDR, LRESULT *pResult);
60 private:
61 CWnd * m_pParentWnd;
62 std::map<UINT, CString> toolTextMap;
64 static CString LoadTooltip( UINT nIDText );