00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "WPDS_GeneralPage.h"
00009 #include "DownloadsWnd.h"
00010
00011 #ifdef _DEBUG
00012 #define new DEBUG_NEW
00013 #undef THIS_FILE
00014 static char THIS_FILE[] = __FILE__;
00015 #endif
00016
00017 extern CDownloadsWnd *_pwndDownloads;
00018
00019 IMPLEMENT_DYNCREATE(CWPDS_GeneralPage, CPropertyPage)
00020
00021 CWPDS_GeneralPage::CWPDS_GeneralPage() : CPropertyPage(CWPDS_GeneralPage::IDD)
00022 {
00023 m_psp.dwFlags |= PSP_USETITLE;
00024 m_psp.pszTitle = LS (L_GENERAL);
00025 }
00026
00027 CWPDS_GeneralPage::~CWPDS_GeneralPage()
00028 {
00029 }
00030
00031 void CWPDS_GeneralPage::DoDataExchange(CDataExchange* pDX)
00032 {
00033 CPropertyPage::DoDataExchange(pDX);
00034
00035 DDX_Control(pDX, IDC_GROUPS, m_wndGroups);
00036
00037 }
00038
00039 BEGIN_MESSAGE_MAP(CWPDS_GeneralPage, CPropertyPage)
00040
00041 ON_WM_CONTEXTMENU()
00042 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00043 ON_CBN_SELCHANGE(IDC_GROUPS, OnSelchangeGroups)
00044 ON_BN_CLICKED(IDC_USELOGIN, OnUselogin)
00045 ON_EN_CHANGE(IDC_USER, OnChangeUser)
00046 ON_EN_CHANGE(IDC_PASSWORD, OnChangePassword)
00047 ON_WM_HELPINFO()
00048
00049 END_MESSAGE_MAP()
00050
00051 BOOL CWPDS_GeneralPage::OnInitDialog()
00052 {
00053 CPropertyPage::OnInitDialog();
00054
00055 m_wndGroups.Fill ();
00056
00057 m_wndGroups.SelectGroup (m_wpds->pDLGroup);
00058
00059 SetDlgItemText (IDC_URL, m_wpd->GetRootPage ()->GetData ().strURL);
00060 SetDlgItemText (IDC_SAVEDIN, m_wpds->strFolderSaveTo);
00061
00062 ReadAuthorization ();
00063
00064 UpdateEnabled ();
00065
00066 ApplyLanguage ();
00067
00068 return TRUE;
00069 }
00070
00071 BOOL CWPDS_GeneralPage::OnApply()
00072 {
00073 if (FALSE == WriteAuthorization ())
00074 return FALSE;
00075
00076 vmsDownloadsGroupSmartPtr pGroup = m_wndGroups.GetSelectedGroup ();
00077
00078 if (pGroup->nId != m_wpds->pDLGroup->nId)
00079 {
00080 m_wpds->pDLGroup = pGroup;
00081 for (int i = 0; i < m_wpd->GetDownloadCount (); i++)
00082 m_wpd->GetDownload (i)->pGroup = pGroup;
00083
00084 _pwndDownloads->OnDownloadsGroupChanged ();
00085 }
00086
00087 return CPropertyPage::OnApply();
00088 }
00089
00090 void CWPDS_GeneralPage::ApplyLanguage()
00091 {
00092 fsDlgLngInfo lnginfo [] = {
00093 fsDlgLngInfo (IDC__GENERAL, L_GENERALINFO),
00094 fsDlgLngInfo (IDC__USER, L_USER),
00095 fsDlgLngInfo (IDC__PASSWORD, L_PASSWORD),
00096 fsDlgLngInfo (IDC_USELOGIN, L_LOGINREQ),
00097 fsDlgLngInfo (IDC__SAVEDIN, L_SAVEDIN),
00098 fsDlgLngInfo (IDC__GROUP, L_GROUP),
00099 fsDlgLngInfo (IDC__URL, L_WEBPAGEURL),
00100 };
00101
00102 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00103 }
00104
00105 void CWPDS_GeneralPage::OnContextMenu(CWnd* , CPoint point)
00106 {
00107 PrepareCHMgr (point);
00108 _CHMgr.ShowMenu ();
00109 }
00110
00111 void CWPDS_GeneralPage::OnWhatisthis()
00112 {
00113 _CHMgr.OnWT ();
00114 }
00115
00116 void CWPDS_GeneralPage::OnSelchangeGroups()
00117 {
00118 SetModified ();
00119 }
00120
00121 void CWPDS_GeneralPage::UpdateEnabled()
00122 {
00123 BOOL bE = IsDlgButtonChecked (IDC_USELOGIN) == BST_CHECKED;
00124
00125 GetDlgItem (IDC_USER)->EnableWindow (bE);
00126 GetDlgItem (IDC_PASSWORD)->EnableWindow (bE);
00127 GetDlgItem (IDC__USER)->EnableWindow (bE);
00128 GetDlgItem (IDC__PASSWORD)->EnableWindow (bE);
00129 }
00130
00131 void CWPDS_GeneralPage::OnUselogin()
00132 {
00133 UpdateEnabled ();
00134 SetModified ();
00135 }
00136
00137 void CWPDS_GeneralPage::OnChangeUser()
00138 {
00139 SetModified ();
00140 }
00141
00142 void CWPDS_GeneralPage::OnChangePassword()
00143 {
00144 SetModified ();
00145 }
00146
00147 void CWPDS_GeneralPage::ReadAuthorization()
00148 {
00149 if (m_wpds->strUserName.Length ())
00150 {
00151 SetDlgItemText (IDC_USER, m_wpds->strUserName);
00152 SetDlgItemText (IDC_PASSWORD, m_wpds->strPassword);
00153 CheckDlgButton (IDC_USELOGIN, BST_CHECKED);
00154 }
00155 else
00156 {
00157 CheckDlgButton (IDC_USELOGIN, BST_UNCHECKED);
00158 }
00159 }
00160
00161 BOOL CWPDS_GeneralPage::WriteAuthorization()
00162 {
00163 if (IsDlgButtonChecked (IDC_USELOGIN) == BST_CHECKED)
00164 {
00165 CString str;
00166 GetDlgItemText (IDC_USER, str);
00167 if (str == "")
00168 {
00169 MessageBox (LS (L_ENTERUSER), LS (L_INPERR), MB_ICONEXCLAMATION);
00170 CEdit *pE = (CEdit*) GetDlgItem (IDC_USER);
00171 pE->SetFocus ();
00172 pE->SetSel (0, -1);
00173 return FALSE;
00174 }
00175
00176 m_wpds->strUserName = str;
00177
00178 GetDlgItemText (IDC_PASSWORD, str);
00179 m_wpds->strPassword = str;
00180 }
00181 else
00182 {
00183 m_wpds->strUserName = "";
00184 m_wpds->strPassword = "";
00185 }
00186
00187 return TRUE;
00188 }
00189
00190 void CWPDS_GeneralPage::PrepareCHMgr(CPoint point)
00191 {
00192 fsCtrlContextHelp aCH1 [] = {
00193 fsCtrlContextHelp (IDC__URL, LS (L_STARTWEBPAGEURLHERE)),
00194 fsCtrlContextHelp (IDC_URL, LS (L_STARTWEBPAGEURLHERE)),
00195 fsCtrlContextHelp (IDC__USER, LS (L_USERHERE)),
00196 fsCtrlContextHelp (IDC_USER, LS (L_USERHERE)),
00197 fsCtrlContextHelp (IDC__PASSWORD, LS (L_PWDHERE)),
00198 fsCtrlContextHelp (IDC_PASSWORD, LS (L_PWDHERE)),
00199 fsCtrlContextHelp (IDC_USELOGIN, LS (L_LOGINHERE)),
00200 fsCtrlContextHelp (IDC__GROUP, LS (L_GROUPHERE)),
00201 fsCtrlContextHelp (IDC_GROUPS, LS (L_GROUPHERE)),
00202 fsCtrlContextHelp (IDC__SAVEDIN, LS (L_SAVEDINHERE)),
00203 fsCtrlContextHelp (IDC_SAVEDIN, LS (L_SAVEDINHERE)),
00204 };
00205
00206 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00207 CopyMemory (aCH, aCH1, sizeof (aCH));
00208
00209 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00210 }
00211
00212 BOOL CWPDS_GeneralPage::OnHelpInfo(HELPINFO* pHelpInfo)
00213 {
00214 RECT rc;
00215 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00216 if (pItem == NULL)
00217 return TRUE;
00218 pItem->GetWindowRect (&rc);
00219 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00220 {
00221 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00222 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00223 }
00224 PrepareCHMgr (pHelpInfo->MousePos);
00225 _CHMgr.OnWT ();
00226 return TRUE;
00227 }