Fix history combobox show twice item
[TortoiseGit.git] / src / Utils / MiscUI / Tooltip.h
blob641efc4d5396d4c04ed4caa472190e0126b8e42f
1 // TortoiseSVN - a Windows shell extension for easy version control
3 // Copyright (C) 2008 - 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 return bRet;
42 CToolTips() : CToolTipCtrl(), m_pParentWnd(NULL) {}
43 virtual ~CToolTips() {}
45 BOOL AddTool(CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);
46 BOOL AddTool(CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);
47 void AddTool(int nIdWnd, UINT nIdText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);
48 void AddTool(int nIdWnd, CString sBalloonTipText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);
50 DECLARE_MESSAGE_MAP()
51 afx_msg BOOL OnTtnNeedText(NMHDR *pNMHDR, LRESULT *pResult);
53 private:
54 CWnd * m_pParentWnd;
55 std::map<UINT, CString> toolTextMap;