OSDN Git Service

Change Dir Structure to be same as TortoiseSVN'
[tortoisegit/TortoiseGitJp.git] / src / Utils / MiscUI / Tooltip.h
1 // TortoiseSVN - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2008 - TortoiseSVN\r
4 \r
5 // This program is free software; you can redistribute it and/or\r
6 // modify it under the terms of the GNU General Public License\r
7 // as published by the Free Software Foundation; either version 2\r
8 // of the License, or (at your option) any later version.\r
9 \r
10 // This program is distributed in the hope that it will be useful,\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 // GNU General Public License for more details.\r
14 \r
15 // You should have received a copy of the GNU General Public License\r
16 // along with this program; if not, write to the Free Software Foundation,\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r
18 //\r
19 #pragma once\r
20 \r
21 \r
22 \r
23 \r
24 /**\r
25  * \ingroup Utils\r
26  * Extends the MFC CToolTipCtrl with convenience methods for dialogs and\r
27  * provides mechanism to use tooltips longer than 80 chars whithout having\r
28  * to implement the TTN_NEEDTEXT handler in every dialog.\r
29  */\r
30 class CToolTips : public CToolTipCtrl\r
31 {\r
32 // Construction\r
33 public:\r
34         virtual BOOL Create(CWnd* pParentWnd, DWORD dwStyle = 0) \r
35         { \r
36                 m_pParentWnd = pParentWnd;\r
37                 m_pParentWnd->EnableToolTips();\r
38                 BOOL bRet = CToolTipCtrl::Create(pParentWnd, dwStyle);\r
39                 SetMaxTipWidth(600);\r
40                 return bRet;\r
41         }\r
42         CToolTips() : CToolTipCtrl(), m_pParentWnd(NULL) {}\r
43         virtual ~CToolTips() {}\r
44 \r
45         BOOL AddTool(CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);\r
46         BOOL AddTool(CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);\r
47         void AddTool(int nIdWnd, UINT nIdText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);\r
48         void AddTool(int nIdWnd, CString sBalloonTipText, LPCRECT lpRectTool = NULL, UINT_PTR nIDTool = 0);\r
49 \r
50         DECLARE_MESSAGE_MAP()\r
51         afx_msg BOOL OnTtnNeedText(NMHDR *pNMHDR, LRESULT *pResult);\r
52 \r
53 private:\r
54         CWnd *  m_pParentWnd;\r
55         std::map<UINT, CString>         toolTextMap;\r
56 };\r
57 \r
58 \r
59 \r
60 \r
61 \r
62 \r
63 \r
64 \r
65 \r
66 \r
67 \r
68 \r
69 \r
70 \r
71 \r
72 \r
73 \r
74 \r