00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "Sites_AdvancedPage.h"
00009
00010 #ifdef _DEBUG
00011 #define new DEBUG_NEW
00012 #undef THIS_FILE
00013 static char THIS_FILE[] = __FILE__;
00014 #endif
00015
00016 IMPLEMENT_DYNCREATE(CSites_AdvancedPage, CPropertyPage)
00017
00018 CSites_AdvancedPage::CSites_AdvancedPage() : CPropertyPage(CSites_AdvancedPage::IDD)
00019 {
00020 m_psp.dwFlags |= PSP_USETITLE;
00021 m_psp.pszTitle = LS (L_ADVANCED);
00022 m_bDialogWasInited = FALSE;
00023 }
00024
00025 CSites_AdvancedPage::~CSites_AdvancedPage()
00026 {
00027 }
00028
00029 void CSites_AdvancedPage::DoDataExchange(CDataExchange* pDX)
00030 {
00031 CPropertyPage::DoDataExchange(pDX);
00032
00033
00034
00035 }
00036
00037 BEGIN_MESSAGE_MAP(CSites_AdvancedPage, CPropertyPage)
00038
00039 ON_WM_CONTEXTMENU()
00040 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00041 ON_BN_CLICKED(IDC_VALIDHTTP, OnValidhttp)
00042 ON_BN_CLICKED(IDC_VALIDHTTPS, OnValidhttps)
00043 ON_BN_CLICKED(IDC_VALIDFTP, OnValidftp)
00044 ON_BN_CLICKED(IDC_VALIDSUBDOMAINS, OnValidsubdomains)
00045 ON_WM_HELPINFO()
00046
00047 END_MESSAGE_MAP()
00048
00049 BOOL CSites_AdvancedPage::OnInitDialog()
00050 {
00051 CPropertyPage::OnInitDialog();
00052
00053 m_bDialogWasInited = TRUE;
00054 ToDialog ();
00055 m_bUserChangedProtocols = FALSE;
00056
00057 ApplyLanguage ();
00058 return TRUE;
00059 }
00060
00061 BOOL CSites_AdvancedPage::OnApply()
00062 {
00063 BOOL bAtLeast1Protocol = FALSE;
00064 DWORD dwVF = 0;
00065
00066 if (IsDlgButtonChecked (IDC_VALIDHTTP) == BST_CHECKED)
00067 {
00068 dwVF |= SITE_VALIDFOR_HTTP;
00069 bAtLeast1Protocol = TRUE;
00070 }
00071
00072 if (IsDlgButtonChecked (IDC_VALIDHTTPS) == BST_CHECKED)
00073 {
00074 dwVF |= SITE_VALIDFOR_HTTPS;
00075 bAtLeast1Protocol = TRUE;
00076 }
00077
00078 if (IsDlgButtonChecked (IDC_VALIDFTP) == BST_CHECKED)
00079 {
00080 dwVF |= SITE_VALIDFOR_FTP;
00081 bAtLeast1Protocol = TRUE;
00082 }
00083
00084 int iNewSiteIndex = _SitesMgr.FindSite (m_pSite->strName, dwVF, FALSE);
00085
00086
00087 if (iNewSiteIndex != -1 && iNewSiteIndex != m_iSiteIndex)
00088 {
00089 MessageBox (LS (L_SITEALREXISTS), LS (L_INPERR), MB_ICONEXCLAMATION);
00090 return FALSE;
00091 }
00092
00093 if (IsDlgButtonChecked (IDC_VALIDSUBDOMAINS) == BST_CHECKED)
00094 dwVF |= SITE_VALIDFOR_SUBDOMAINS;
00095
00096 if (bAtLeast1Protocol == FALSE)
00097 {
00098 MessageBox (LS (L_ENTERATLEAST1PROTOCOL), LS (L_INPERR), MB_ICONEXCLAMATION);
00099 return FALSE;
00100 }
00101
00102 m_pSite->dwValidFor = dwVF;
00103
00104 return CPropertyPage::OnApply();
00105 }
00106
00107 void CSites_AdvancedPage::ApplyLanguage()
00108 {
00109 fsDlgLngInfo lnginfo [] = {
00110 fsDlgLngInfo (IDC__VALIDFOR, L_VALIDFOR),
00111 fsDlgLngInfo (IDC_VALIDSUBDOMAINS, L_VALIDFORSUBDOMAINS),
00112 };
00113
00114 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00115 }
00116
00117 void CSites_AdvancedPage::OnContextMenu(CWnd* , CPoint point)
00118 {
00119 PrepareCHMgr (point);
00120 _CHMgr.ShowMenu ();
00121 }
00122
00123 void CSites_AdvancedPage::OnWhatisthis()
00124 {
00125 _CHMgr.OnWT ();
00126 }
00127
00128 void CSites_AdvancedPage::OnValidhttp()
00129 {
00130 m_bUserChangedProtocols = TRUE;
00131 SetModified ();
00132 }
00133
00134 void CSites_AdvancedPage::OnValidhttps()
00135 {
00136 m_bUserChangedProtocols = TRUE;
00137 SetModified ();
00138 }
00139
00140 void CSites_AdvancedPage::OnValidftp()
00141 {
00142 m_bUserChangedProtocols = TRUE;
00143 SetModified ();
00144 }
00145
00146 void CSites_AdvancedPage::OnValidsubdomains()
00147 {
00148 SetModified ();
00149 }
00150
00151 BOOL CSites_AdvancedPage::IsUserChangedProtocols()
00152 {
00153 return m_bUserChangedProtocols;
00154 }
00155
00156 void CSites_AdvancedPage::FromDialog()
00157 {
00158 if (m_bDialogWasInited)
00159 OnApply ();
00160 }
00161
00162 void CSites_AdvancedPage::ToDialog()
00163 {
00164 if (m_bDialogWasInited == FALSE)
00165 return;
00166
00167 CheckDlgButton (IDC_VALIDHTTP, m_pSite->dwValidFor & SITE_VALIDFOR_HTTP);
00168 CheckDlgButton (IDC_VALIDHTTPS, m_pSite->dwValidFor & SITE_VALIDFOR_HTTPS);
00169 CheckDlgButton (IDC_VALIDFTP, m_pSite->dwValidFor & SITE_VALIDFOR_FTP);
00170 CheckDlgButton (IDC_VALIDSUBDOMAINS, m_pSite->dwValidFor & SITE_VALIDFOR_SUBDOMAINS);
00171 }
00172
00173 void CSites_AdvancedPage::PrepareCHMgr(CPoint point)
00174 {
00175 fsCtrlContextHelp aCH1 [] = {
00176 fsCtrlContextHelp (IDC_VALIDHTTP, LS (L_VALIDHTTPHERE)),
00177 fsCtrlContextHelp (IDC_VALIDHTTPS, LS (L_VALIDHTTPSHERE)),
00178 fsCtrlContextHelp (IDC_VALIDFTP, LS (L_VALIDFTPHERE)),
00179 fsCtrlContextHelp (IDC_VALIDSUBDOMAINS, LS (L_VALIDSUBDOMAINSHERE)),
00180 };
00181
00182 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00183 CopyMemory (aCH, aCH1, sizeof (aCH));
00184
00185 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00186 }
00187
00188 BOOL CSites_AdvancedPage::OnHelpInfo(HELPINFO* pHelpInfo)
00189 {
00190 RECT rc;
00191 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00192 if (pItem == NULL)
00193 return TRUE;
00194 pItem->GetWindowRect (&rc);
00195 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00196 {
00197 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00198 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00199 }
00200 PrepareCHMgr (pHelpInfo->MousePos);
00201 _CHMgr.OnWT ();
00202 return TRUE;
00203 }