00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "BtDld_Misc.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(CBtDld_Misc, CPropertyPage)
00017
00018 CBtDld_Misc::CBtDld_Misc() : CPropertyPage(CBtDld_Misc::IDD)
00019 {
00020 m_psp.dwFlags |= PSP_USETITLE;
00021 m_psp.pszTitle = LS (L_MISC);
00022 }
00023
00024 CBtDld_Misc::~CBtDld_Misc()
00025 {
00026 }
00027
00028 void CBtDld_Misc::DoDataExchange(CDataExchange* pDX)
00029 {
00030 CPropertyPage::DoDataExchange(pDX);
00031
00032
00033
00034 }
00035
00036 BEGIN_MESSAGE_MAP(CBtDld_Misc, CPropertyPage)
00037
00038 ON_BN_CLICKED(IDC_LAUNCHWHENDONE, OnLaunchwhendone)
00039 ON_BN_CLICKED(IDC_GENERATEINFOFILE, OnGenerateinfofile)
00040 ON_BN_CLICKED(IDC_RESERVESPACE, OnReservespace)
00041
00042 END_MESSAGE_MAP()
00043
00044 void CBtDld_Misc::ApplyLanguage()
00045 {
00046 fsDlgLngInfo lnginfo [] = {
00047 fsDlgLngInfo (IDC_RESERVESPACE, L_RESERVESPACE),
00048 fsDlgLngInfo (IDC_LAUNCHWHENDONE, L_LAUNCHWHENDONE),
00049 fsDlgLngInfo (IDC_GENERATEINFOFILE, L_GENERATEDESCFILE),
00050 };
00051
00052 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00053 }
00054
00055 BOOL CBtDld_Misc::OnInitDialog()
00056 {
00057 CPropertyPage::OnInitDialog();
00058
00059 if (*m_pvDlds->at (0)->pMgr->GetBtDownloadMgr ()->get_URL () == 0)
00060 GetDlgItem (IDC_RESERVESPACE)->EnableWindow (TRUE);
00061
00062 FlagToDlg (BTDF_RESERVE_DISK_SPACE, IDC_RESERVESPACE);
00063 FlagToDlg (BTDF_LAUNCH_WHEN_DONE, IDC_LAUNCHWHENDONE);
00064 FlagToDlg (BTDF_GENERATE_DESC_FILE, IDC_GENERATEINFOFILE);
00065
00066 ApplyLanguage ();
00067
00068 return TRUE;
00069
00070 }
00071
00072 void CBtDld_Misc::OnLaunchwhendone()
00073 {
00074 if (IsDlgButtonChecked (IDC_LAUNCHWHENDONE) == BST_INDETERMINATE)
00075 CheckDlgButton (IDC_LAUNCHWHENDONE, BST_UNCHECKED);
00076
00077 SetModified ();
00078 }
00079
00080 void CBtDld_Misc::OnGenerateinfofile()
00081 {
00082 if (IsDlgButtonChecked (IDC_GENERATEINFOFILE) == BST_INDETERMINATE)
00083 CheckDlgButton (IDC_GENERATEINFOFILE, BST_UNCHECKED);
00084
00085 SetModified ();
00086 }
00087
00088 void CBtDld_Misc::FlagToDlg(DWORD dwFlag, UINT nIdCtrl)
00089 {
00090 vmsDownloadSmartPtr dld0 = m_pvDlds->at (0);
00091
00092 for (size_t i = 1; i < m_pvDlds->size (); i++)
00093 {
00094 if ((dld0->pMgr->GetBtDownloadMgr ()->get_Flags () ^
00095 m_pvDlds->at (i)->pMgr->GetBtDownloadMgr ()->get_Flags ()) & dwFlag)
00096 break;
00097 }
00098 if (i == m_pvDlds->size ())
00099 {
00100 CheckDlgButton (nIdCtrl, dld0->pMgr->GetBtDownloadMgr ()->get_Flags () & dwFlag ?
00101 BST_CHECKED : BST_UNCHECKED);
00102 }
00103 }
00104
00105 BOOL CBtDld_Misc::OnApply()
00106 {
00107 DlgToFlag (BTDF_RESERVE_DISK_SPACE, IDC_RESERVESPACE);
00108 DlgToFlag (BTDF_LAUNCH_WHEN_DONE, IDC_LAUNCHWHENDONE);
00109 DlgToFlag (BTDF_GENERATE_DESC_FILE, IDC_GENERATEINFOFILE);
00110
00111 return CPropertyPage::OnApply();
00112 }
00113
00114 void CBtDld_Misc::DlgToFlag(DWORD dwFlag, UINT nIdCtrl)
00115 {
00116 UINT u = IsDlgButtonChecked (nIdCtrl);
00117 if (u == BST_INDETERMINATE)
00118 return;
00119
00120 for (size_t i = 0; i < m_pvDlds->size (); i++)
00121 {
00122 if (u == BST_CHECKED)
00123 m_pvDlds->at (i)->pMgr->GetBtDownloadMgr ()->enable_Flags (dwFlag);
00124 else
00125 m_pvDlds->at (i)->pMgr->GetBtDownloadMgr ()->disable_Flags (dwFlag);
00126 }
00127 }
00128
00129 void CBtDld_Misc::OnReservespace()
00130 {
00131 if (IsDlgButtonChecked (IDC_RESERVESPACE) == BST_INDETERMINATE)
00132 CheckDlgButton (IDC_RESERVESPACE, BST_UNCHECKED);
00133
00134 SetModified ();
00135 }