OSDN Git Service

Show Ignore Sub Menu
[tortoisegit/TortoiseGitJp.git] / TortoiseProc / RelocateDlg.cpp
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 #include "stdafx.h"\r
20 #include "TortoiseProc.h"\r
21 #include "RelocateDlg.h"\r
22 #include "RepositoryBrowser.h"\r
23 #include "BrowseFolder.h"\r
24 #include "AppUtils.h"\r
25 \r
26 IMPLEMENT_DYNAMIC(CRelocateDlg, CResizableStandAloneDialog)\r
27 CRelocateDlg::CRelocateDlg(CWnd* pParent /*=NULL*/)\r
28         : CResizableStandAloneDialog(CRelocateDlg::IDD, pParent)\r
29         , m_sToUrl(_T(""))\r
30         , m_sFromUrl(_T(""))\r
31 {\r
32 }\r
33 \r
34 CRelocateDlg::~CRelocateDlg()\r
35 {\r
36 }\r
37 \r
38 void CRelocateDlg::DoDataExchange(CDataExchange* pDX)\r
39 {\r
40         CResizableStandAloneDialog::DoDataExchange(pDX);\r
41         DDX_Control(pDX, IDC_TOURL, m_URLCombo);\r
42 }\r
43 \r
44 \r
45 BEGIN_MESSAGE_MAP(CRelocateDlg, CResizableStandAloneDialog)\r
46         ON_BN_CLICKED(IDC_BROWSE, OnBnClickedBrowse)\r
47         ON_BN_CLICKED(IDHELP, OnBnClickedHelp)\r
48         ON_WM_SIZING()\r
49 END_MESSAGE_MAP()\r
50 \r
51 BOOL CRelocateDlg::OnInitDialog()\r
52 {\r
53         CResizableStandAloneDialog::OnInitDialog();\r
54 \r
55         m_URLCombo.SetURLHistory(TRUE);\r
56         m_URLCombo.LoadHistory(_T("Software\\TortoiseSVN\\History\\repoURLS"), _T("url"));\r
57         m_URLCombo.SetCurSel(0);\r
58 \r
59         RECT rect;\r
60         GetWindowRect(&rect);\r
61         m_height = rect.bottom - rect.top;\r
62 \r
63         AddAnchor(IDC_TOURL, TOP_LEFT, TOP_RIGHT);\r
64         AddAnchor(IDC_BROWSE, TOP_RIGHT);\r
65         AddAnchor(IDOK, BOTTOM_RIGHT);\r
66         AddAnchor(IDCANCEL, BOTTOM_RIGHT);\r
67         AddAnchor(IDHELP, BOTTOM_RIGHT);\r
68 \r
69         SetDlgItemText(IDC_FROMURL, m_sFromUrl);\r
70         m_URLCombo.SetWindowText(m_sFromUrl);\r
71         if ((m_pParentWnd==NULL)&&(hWndExplorer))\r
72                 CenterWindow(CWnd::FromHandle(hWndExplorer));\r
73         EnableSaveRestore(_T("RelocateDlg"));\r
74         return TRUE;\r
75 }\r
76 \r
77 void CRelocateDlg::OnBnClickedBrowse()\r
78 {\r
79         SVNRev rev(SVNRev::REV_HEAD);\r
80         CAppUtils::BrowseRepository(m_URLCombo, this, rev);\r
81 }\r
82 \r
83 void CRelocateDlg::OnOK()\r
84 {\r
85         UpdateData(TRUE);\r
86         m_URLCombo.SaveHistory();\r
87         m_sToUrl = m_URLCombo.GetString();\r
88         UpdateData(FALSE);\r
89 \r
90         CResizableStandAloneDialog::OnOK();\r
91 }\r
92 \r
93 void CRelocateDlg::OnBnClickedHelp()\r
94 {\r
95         OnHelp();\r
96 }\r
97 \r
98 void CRelocateDlg::OnSizing(UINT fwSide, LPRECT pRect)\r
99 {\r
100         // don't allow the dialog to be changed in height\r
101         switch (fwSide)\r
102         {\r
103         case WMSZ_BOTTOM:\r
104         case WMSZ_BOTTOMLEFT:\r
105         case WMSZ_BOTTOMRIGHT:\r
106                 pRect->bottom = pRect->top + m_height;\r
107                 break;\r
108         case WMSZ_TOP:\r
109         case WMSZ_TOPLEFT:\r
110         case WMSZ_TOPRIGHT:\r
111                 pRect->top = pRect->bottom - m_height;\r
112                 break;\r
113         }\r
114         CResizableStandAloneDialog::OnSizing(fwSide, pRect);\r
115 }\r