00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "DownloaderProperties_NewDownloadPage.h"
00009 #include "DownloadsWnd.h"
00010 #include "GroupDlg.h"
00011 #include "FolderBrowser.h"
00012
00013 extern CDownloadsWnd* _pwndDownloads;
00014
00015 #ifdef _DEBUG
00016 #define new DEBUG_NEW
00017 #undef THIS_FILE
00018 static char THIS_FILE[] = __FILE__;
00019 #endif
00020
00021 IMPLEMENT_DYNCREATE(CDownloaderProperties_NewDownloadPage, CPropertyPage)
00022
00023 CDownloaderProperties_NewDownloadPage::CDownloaderProperties_NewDownloadPage() : CPropertyPage(CDownloaderProperties_NewDownloadPage::IDD)
00024 {
00025 m_psp.dwFlags |= PSP_USETITLE;
00026 m_psp.pszTitle = LS (L_NEWDOWNLOAD);
00027 }
00028
00029 CDownloaderProperties_NewDownloadPage::~CDownloaderProperties_NewDownloadPage()
00030 {
00031 }
00032
00033 void CDownloaderProperties_NewDownloadPage::DoDataExchange(CDataExchange* pDX)
00034 {
00035 CPropertyPage::DoDataExchange(pDX);
00036
00037 DDX_Control(pDX, IDC_CREATEGROUP2, m_btnCreateGroup2);
00038 DDX_Control(pDX, IDC_GROUPS2, m_wndGroups2);
00039 DDX_Control(pDX, IDC_GROUPS, m_wndGroups);
00040 DDX_Control(pDX, IDC_CREATEGROUP, m_btnCreateGroup);
00041
00042 }
00043
00044 BEGIN_MESSAGE_MAP(CDownloaderProperties_NewDownloadPage, CPropertyPage)
00045
00046 ON_WM_HELPINFO()
00047 ON_WM_CONTEXTMENU()
00048 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00049 ON_BN_CLICKED(IDC_CREATEGROUP, OnCreategroup)
00050 ON_BN_CLICKED(IDC_ADVANCED, OnAdvanced)
00051 ON_CBN_SELCHANGE(IDC_GROUPS, OnSelchangeGroups)
00052 ON_BN_CLICKED(IDC_AUTOSTART, OnAutostart)
00053 ON_BN_CLICKED(IDC_USEZIP, OnUsezip)
00054 ON_BN_CLICKED(IDC_NEWGRP_0, OnNewgrp0)
00055 ON_BN_CLICKED(IDC_NEWGRP_1, OnNewgrp1)
00056 ON_BN_CLICKED(IDC_NEWGRP_2, OnNewgrp2)
00057 ON_BN_CLICKED(IDC_CREATEGROUP2, OnCreategroup2)
00058
00059 END_MESSAGE_MAP()
00060
00061 BOOL CDownloaderProperties_NewDownloadPage::OnInitDialog()
00062 {
00063 CPropertyPage::OnInitDialog();
00064
00065 m_btnCreateGroup.SetIcon (SICO (IDI_CREATEGROUP));
00066 m_btnCreateGroup2.SetIcon (SICO (IDI_CREATEGROUP));
00067
00068 m_wndGroups.Fill ();
00069 m_wndGroups2.Fill ();
00070
00071 switch (_App.NewGrp_SelectWay ())
00072 {
00073 case NGSW_CHOOSE_BY_EXT:
00074 if (_App.NewDL_GroupId () != (UINT)-1)
00075 _App.NewDL_GroupId ((UINT)-1);
00076 CheckRadioButton (IDC_NEWGRP_0, IDC_NEWGRP_2, IDC_NEWGRP_0);
00077 m_wndGroups.SelectGroupById (GRP_OTHER_ID);
00078 m_wndGroups2.SelectGroupById (GRP_OTHER_ID);
00079 break;
00080
00081 case NGSW_USE_ALWAYS_SAME_GROUP:
00082 CheckRadioButton (IDC_NEWGRP_0, IDC_NEWGRP_2, IDC_NEWGRP_1);
00083 m_wndGroups.SelectGroupById (_App.NewDL_GroupId ());
00084 m_wndGroups2.SelectGroupById (GRP_OTHER_ID);
00085 break;
00086
00087 case NGSW_USE_ALWAYS_SAME_GROUP_WITH_OUTFOLDER_AUTO_UPDATE:
00088 CheckRadioButton (IDC_NEWGRP_0, IDC_NEWGRP_2, IDC_NEWGRP_2);
00089 m_wndGroups.SelectGroupById (GRP_OTHER_ID);
00090 m_wndGroups2.SelectGroupById (_App.NewDL_GroupId ());
00091 break;
00092 }
00093
00094 CheckDlgButton (IDC_AUTOSTART, _App.NewDL_AutoStart () ? BST_CHECKED : BST_UNCHECKED);
00095 CheckDlgButton (IDC_USEZIP, _App.NewDL_UseZIPPreview () ? BST_CHECKED : BST_UNCHECKED);
00096
00097 ApplyLanguage ();
00098
00099 UpdateEnabled ();
00100
00101 return TRUE;
00102 }
00103
00104 BOOL CDownloaderProperties_NewDownloadPage::OnHelpInfo(HELPINFO* pHelpInfo)
00105 {
00106 RECT rc;
00107 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00108 if (pItem == NULL)
00109 return TRUE;
00110 pItem->GetWindowRect (&rc);
00111 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00112 {
00113 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00114 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00115 }
00116 PrepareCHMgr (pHelpInfo->MousePos);
00117 _CHMgr.OnWT ();
00118 return TRUE;
00119 }
00120
00121 void CDownloaderProperties_NewDownloadPage::OnContextMenu(CWnd* , CPoint point)
00122 {
00123 PrepareCHMgr (point);
00124 _CHMgr.ShowMenu ();
00125 }
00126
00127 void CDownloaderProperties_NewDownloadPage::OnWhatisthis()
00128 {
00129 _CHMgr.OnWT ();
00130 }
00131
00132 void CDownloaderProperties_NewDownloadPage::ApplyLanguage()
00133 {
00134 fsDlgLngInfo lnginfo [] = {
00135 fsDlgLngInfo (IDC__GRPFORNEWDLD, L_GRPFORNEWDLD),
00136 fsDlgLngInfo (IDC_NEWGRP_0, L_GROUPBYEXT),
00137 fsDlgLngInfo (IDC_NEWGRP_1, L_ALWAYSUSETHISGRP),
00138 fsDlgLngInfo (IDC_NEWGRP_2, L_ALWAYSUSESAMEGRPANDAUTOUPDATEOUTFOLDER),
00139 fsDlgLngInfo (IDC_ADVANCED, L_ADVANCED),
00140 fsDlgLngInfo (IDC_AUTOSTART, L_STARTDLDAUTOMATICALLY),
00141 fsDlgLngInfo (IDC_USEZIP, L_USEZIPPREVIEW),
00142 };
00143
00144 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00145 }
00146
00147 void CDownloaderProperties_NewDownloadPage::PrepareCHMgr(CPoint point)
00148 {
00149 fsCtrlContextHelp aCH1 [] = {
00150 fsCtrlContextHelp (IDC_NEWGRP_0, LS (L_GROUPBYEXTHERE)),
00151 fsCtrlContextHelp (IDC_GROUPS, LS (L_GROUPHERE)),
00152 fsCtrlContextHelp (IDC_CREATEGROUP, LS (L_CREATEGRP)),
00153 fsCtrlContextHelp (IDC_ADVANCED, LS (L_ADVANCEDHERE)),
00154 fsCtrlContextHelp (IDC_AUTOSTART, LS (L_DLDAUTOSTARTHERE)),
00155 fsCtrlContextHelp (IDC_USEZIP, LS (L_USEZIPPREVIEWHERE)),
00156 };
00157
00158 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00159 CopyMemory (aCH, aCH1, sizeof (aCH));
00160
00161 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00162 }
00163
00164 void CDownloaderProperties_NewDownloadPage::UpdateEnabled()
00165 {
00166 BOOL b1, b2;
00167
00168 if (IsDlgButtonChecked (IDC_NEWGRP_0) == BST_CHECKED)
00169 b1 = b2 = FALSE;
00170 else if (IsDlgButtonChecked (IDC_NEWGRP_1) == BST_CHECKED) {
00171 b1 = TRUE; b2 = FALSE;
00172 }
00173 else {
00174 b1 = FALSE; b2 = TRUE;
00175 }
00176
00177 GetDlgItem (IDC_GROUPS)->EnableWindow (b1);
00178 GetDlgItem (IDC_CREATEGROUP)->EnableWindow (b1);
00179
00180 GetDlgItem (IDC_GROUPS2)->EnableWindow (b2);
00181 GetDlgItem (IDC_CREATEGROUP2)->EnableWindow (b2);
00182 }
00183
00184 void CDownloaderProperties_NewDownloadPage::OnCreategroup()
00185 {
00186 if (m_wndGroups.CreateNewGroup (m_wndGroups.GetSelectedGroup ()))
00187 SetModified ();
00188 }
00189
00190 void CDownloaderProperties_NewDownloadPage::OnAdvanced()
00191 {
00192 _pwndDownloads->OnDownloadDefProperties ();
00193 }
00194
00195 void CDownloaderProperties_NewDownloadPage::OnSelchangeGroups()
00196 {
00197 SetModified ();
00198 }
00199
00200 BOOL CDownloaderProperties_NewDownloadPage::OnApply()
00201 {
00202 if (IsDlgButtonChecked (IDC_NEWGRP_0) == BST_CHECKED)
00203 {
00204 _App.NewGrp_SelectWay (NGSW_CHOOSE_BY_EXT);
00205 _App.NewDL_GroupId ((UINT)-1);
00206 }
00207 else if (IsDlgButtonChecked (IDC_NEWGRP_1) == BST_CHECKED)
00208 {
00209 _App.NewGrp_SelectWay (NGSW_USE_ALWAYS_SAME_GROUP);
00210 _App.NewDL_GroupId (m_wndGroups.GetSelectedGroup ()->nId);
00211 }
00212 else
00213 {
00214 _App.NewGrp_SelectWay (NGSW_USE_ALWAYS_SAME_GROUP_WITH_OUTFOLDER_AUTO_UPDATE);
00215 _App.NewDL_GroupId (m_wndGroups2.GetSelectedGroup ()->nId);
00216 }
00217
00218 _App.NewDL_AutoStart (IsDlgButtonChecked (IDC_AUTOSTART) == BST_CHECKED);
00219 _App.NewDL_UseZIPPreview (IsDlgButtonChecked (IDC_USEZIP) == BST_CHECKED);
00220
00221 return CPropertyPage::OnApply();
00222 }
00223
00224 void CDownloaderProperties_NewDownloadPage::OnAutostart()
00225 {
00226 SetModified ();
00227 }
00228
00229 void CDownloaderProperties_NewDownloadPage::OnUsezip()
00230 {
00231 SetModified ();
00232 }
00233
00234 void CDownloaderProperties_NewDownloadPage::OnNewgrp0()
00235 {
00236 SetModified ();
00237 UpdateEnabled ();
00238 }
00239
00240 void CDownloaderProperties_NewDownloadPage::OnNewgrp1()
00241 {
00242 SetModified ();
00243 UpdateEnabled ();
00244 }
00245
00246 void CDownloaderProperties_NewDownloadPage::OnNewgrp2()
00247 {
00248 SetModified ();
00249 UpdateEnabled ();
00250 }
00251
00252 void CDownloaderProperties_NewDownloadPage::OnCreategroup2()
00253 {
00254 if (m_wndGroups2.CreateNewGroup (m_wndGroups2.GetSelectedGroup ()))
00255 SetModified ();
00256 }