OSDN Git Service

Add Ext menu config at setting dialog to set menu item to external
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Settings / Settings.h
1 // TortoiseSVN - a Windows shell extension for easy version control\r
2 \r
3 // Copyright (C) 2003-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 #include "SettingsPropPage.h"\r
22 #include "SetMainPage.h"\r
23 #include "SetProxyPage.h"\r
24 #include "SetOverlayPage.h"\r
25 #include "SettingsProgsDiff.h"\r
26 #include "SettingsProgsMerge.h"\r
27 #include "SettingsProgsUniDiff.h"\r
28 #include "SetOverlayIcons.h"\r
29 #include "SetLookAndFeelPage.h"\r
30 #include "SetDialogs.h"\r
31 #include "SettingsColors.h"\r
32 #include "SettingsColors2.h"\r
33 #include "SettingsColors3.h"\r
34 #include "SetMisc.h"\r
35 #include "SetLogCache.h"\r
36 #include "SettingsLogCaches.h"\r
37 #include "SetSavedDataPage.h"\r
38 #include "SetHooks.h"\r
39 #include "SetBugTraq.h"\r
40 #include "SettingsTBlame.h"\r
41 #include "SettingsRevisionGraph.h"\r
42 #include "TreePropSheet/TreePropSheet.h"\r
43 #include "SettingGitConfig.h"\r
44 #include "SettingGitRemote.h"\r
45 #include "SettingsBugtraqConfig.h"\r
46 #include "SetExtMenu.h"\r
47 \r
48 using namespace TreePropSheet;\r
49 \r
50 /**\r
51  * \ingroup TortoiseProc\r
52  * This is the container for all settings pages. A setting page is\r
53  * a class derived from CPropertyPage with an additional method called\r
54  * SaveData(). The SaveData() method is used by the dialog to save\r
55  * the settings the user has made - if that method is not called then\r
56  * it means that the changes are discarded! Each settings page has\r
57  * to make sure that no changes are saved outside that method.\r
58  */\r
59 class CSettings : public CTreePropSheet\r
60 {\r
61         DECLARE_DYNAMIC(CSettings)\r
62 private:\r
63         /**\r
64          * Adds all pages to this Settings-Dialog.\r
65          */\r
66         void AddPropPages();\r
67         /**\r
68          * Removes the pages and frees up memory.\r
69          */\r
70         void RemovePropPages();\r
71 \r
72 private:\r
73         CSetMainPage *                  m_pMainPage;\r
74         CSetProxyPage *                 m_pProxyPage;\r
75         CSetOverlayPage *               m_pOverlayPage;\r
76         CSetOverlayIcons *              m_pOverlaysPage;\r
77         CSettingsProgsDiff*             m_pProgsDiffPage;\r
78         CSettingsProgsMerge *   m_pProgsMergePage;\r
79         CSettingsProgsUniDiff * m_pProgsUniDiffPage;\r
80         CSetLookAndFeelPage *   m_pLookAndFeelPage;\r
81         CSetDialogs *                   m_pDialogsPage;\r
82     CSettingsRevisionGraph* m_pRevisionGraphPage;\r
83         CSettingsColors *               m_pColorsPage;\r
84     CSettingsColors2 *          m_pColorsPage2;\r
85     CSettingsColors3 *          m_pColorsPage3;\r
86         CSetMisc *                              m_pMiscPage;\r
87 //      CSetLogCache *                  m_pLogCachePage;\r
88 //    CSettingsLogCaches*     m_pLogCacheListPage;\r
89         CSetSavedDataPage *             m_pSavedPage;\r
90 //      CSetHooks *                             m_pHooksPage;\r
91         CSetBugTraq *                   m_pBugTraqPage;\r
92         CSettingsTBlame *               m_pTBlamePage;\r
93         CSettingGitConfig *             m_pGitConfig;\r
94         CSettingGitRemote *             m_pGitRemote;\r
95         CSettingsBugtraqConfig * m_pBugtraqConfig;\r
96 \r
97         CSetExtMenu     *                       m_pExtMenu;\r
98 \r
99         HICON                                   m_hIcon;\r
100 public:\r
101         CSettings(UINT nIDCaption,CTGitPath *CmdPath=NULL, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);\r
102         virtual ~CSettings();\r
103         CTGitPath m_CmdPath;\r
104         CString m_DefaultPage;\r
105         /**\r
106          * Calls the SaveData()-methods of each of the settings pages.\r
107          */\r
108         void HandleRestart();\r
109 protected:\r
110         DECLARE_MESSAGE_MAP()\r
111         virtual BOOL OnInitDialog();\r
112         afx_msg void OnPaint();\r
113         afx_msg HCURSOR OnQueryDragIcon();\r
114 };\r
115 \r
116 \r