00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "DlgDeletedProperties.h"
00009 #include "DownloadsWnd.h"
00010
00011 extern CDownloadsWnd* _pwndDownloads;
00012
00013 #ifdef _DEBUG
00014 #define new DEBUG_NEW
00015 #undef THIS_FILE
00016 static char THIS_FILE[] = __FILE__;
00017 #endif
00018
00019 CDlgDeletedProperties::CDlgDeletedProperties(CWnd* pParent )
00020 : CDialog(CDlgDeletedProperties::IDD, pParent)
00021 {
00022
00023
00024
00025 }
00026
00027 void CDlgDeletedProperties::DoDataExchange(CDataExchange* pDX)
00028 {
00029 CDialog::DoDataExchange(pDX);
00030
00031 DDX_Control(pDX, IDC_MAXVALSPIN, m_wndMaxValSpin);
00032
00033 }
00034
00035 BEGIN_MESSAGE_MAP(CDlgDeletedProperties, CDialog)
00036
00037 ON_WM_HELPINFO()
00038 ON_WM_CONTEXTMENU()
00039 ON_BN_CLICKED(IDC_DONTUSE, OnDontuse)
00040 ON_BN_CLICKED(IDC_USEMAX, OnUsemax)
00041 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00042
00043 END_MESSAGE_MAP()
00044
00045 BOOL CDlgDeletedProperties::OnInitDialog()
00046 {
00047 CDialog::OnInitDialog();
00048
00049 m_wndMaxValSpin.SetRange (1, UD_MAXVAL);
00050
00051 CheckDlgButton (IDC_DONTUSE, _App.Deleted_Bypass () ? BST_CHECKED : BST_UNCHECKED);
00052
00053 UINT max = _App.Deleted_MaxCount ();
00054 if (max != UINT_MAX)
00055 {
00056 CheckDlgButton (IDC_USEMAX, BST_CHECKED);
00057 SetDlgItemInt (IDC_MAXVAL, int (max));
00058 }
00059 else
00060 SetDlgItemInt (IDC_MAXVAL, 100);
00061
00062 CheckDlgButton (IDC_BYPASSCOMPLETED, _App.Deleted_BypassCompleted () ? BST_CHECKED : BST_UNCHECKED);
00063
00064 CheckDlgButton (IDC_CONFIRMDELETION, _App.Deleted_ConfirmDeletion () ?
00065 BST_CHECKED : BST_UNCHECKED);
00066
00067 ApplyLanguage ();
00068 UpdateEnabled ();
00069
00070 return TRUE;
00071 }
00072
00073 BOOL CDlgDeletedProperties::OnHelpInfo(HELPINFO* pHelpInfo)
00074 {
00075 RECT rc;
00076
00077 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00078 if (pItem == NULL)
00079 return TRUE;
00080
00081 pItem->GetWindowRect (&rc);
00082 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00083 {
00084 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00085 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00086 }
00087
00088 PrepareCHMgr (pHelpInfo->MousePos);
00089
00090 _CHMgr.OnWT ();
00091 return TRUE;
00092 }
00093
00094 void CDlgDeletedProperties::OnContextMenu(CWnd* , CPoint point)
00095 {
00096 PrepareCHMgr (point);
00097 _CHMgr.ShowMenu ();
00098 }
00099
00100 void CDlgDeletedProperties::ApplyLanguage()
00101 {
00102 fsDlgLngInfo lnginfo [] = {
00103 fsDlgLngInfo (IDC_DONTUSE, L_DONTUSEDELETED),
00104 fsDlgLngInfo (IDC_USEMAX, L_MAXDELETED),
00105 fsDlgLngInfo (IDC__DOWNLOADS, L_DOWNLOADS_),
00106 fsDlgLngInfo (IDC_BYPASSCOMPLETED, L_BYPASSCOMPLETED),
00107 fsDlgLngInfo (IDC_CONFIRMDELETION, L_CONFIRMDLDELETION),
00108 fsDlgLngInfo (IDCANCEL, L_CANCEL),
00109 };
00110
00111 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), L_DELETEDPROPERTIES);
00112 }
00113
00114 void CDlgDeletedProperties::UpdateEnabled()
00115 {
00116 BOOL b = IsDlgButtonChecked (IDC_DONTUSE) == BST_UNCHECKED;
00117 GetDlgItem (IDC_BYPASSCOMPLETED)->EnableWindow (b);
00118 GetDlgItem (IDC_USEMAX)->EnableWindow (b);
00119 b = b && IsDlgButtonChecked (IDC_USEMAX) == BST_CHECKED;
00120 GetDlgItem (IDC_MAXVAL)->EnableWindow (b);
00121 GetDlgItem (IDC_MAXVALSPIN)->EnableWindow (b);
00122 GetDlgItem (IDC__DOWNLOADS)->EnableWindow (b);
00123 }
00124
00125 void CDlgDeletedProperties::PrepareCHMgr(CPoint point)
00126 {
00127 fsCtrlContextHelp aCH1 [] = {
00128 fsCtrlContextHelp (IDC_DONTUSE, LS (L_DONTUSEDELETEDHERE)),
00129 fsCtrlContextHelp (IDC_USEMAX, LS (L_MAXDELETEDHERE)),
00130 fsCtrlContextHelp (IDC_MAXVAL, LS (L_MAXDELETEDVALHERE)),
00131 fsCtrlContextHelp (IDC_BYPASSCOMPLETED, LS (L_BYPASSCOMPLETEDHERE)),
00132 fsCtrlContextHelp (IDC_CONFIRMDELETION, LS (L_CONFIRMDLDDELETIONHERE)),
00133 };
00134
00135 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00136 CopyMemory (aCH, aCH1, sizeof (aCH));
00137
00138 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00139 }
00140
00141 void CDlgDeletedProperties::OnDontuse()
00142 {
00143 if (IsDlgButtonChecked (IDC_DONTUSE) == BST_CHECKED)
00144 CheckDlgButton (IDC_CONFIRMDELETION, BST_CHECKED);
00145
00146 UpdateEnabled ();
00147 }
00148
00149 void CDlgDeletedProperties::OnOK()
00150 {
00151 BOOL bDontUse = IsDlgButtonChecked (IDC_DONTUSE) == BST_CHECKED;
00152 if (bDontUse == FALSE)
00153 {
00154 if (IsDlgButtonChecked (IDC_USEMAX) == BST_CHECKED)
00155 {
00156 UINT max = GetDlgItemInt (IDC_MAXVAL);
00157 if (max == 0)
00158 {
00159 CString str;
00160 str.Format (LS (L_ENTERGREATER), 0);
00161 MessageBox (str, LS (L_INPERR), MB_ICONEXCLAMATION);
00162 CEdit *pE = (CEdit*) GetDlgItem (IDC_MAXVAL);
00163 pE->SetSel (0, -1);
00164 pE->SetFocus ();
00165 return;
00166 }
00167 _App.Deleted_MaxCount (max);
00168 }
00169 else
00170 _App.Deleted_MaxCount (UINT_MAX);
00171
00172 _App.Deleted_BypassCompleted (
00173 IsDlgButtonChecked (IDC_BYPASSCOMPLETED) == BST_CHECKED);
00174 }
00175
00176 _App.Deleted_Bypass (bDontUse);
00177 _App.Deleted_ConfirmDeletion (IsDlgButtonChecked (IDC_CONFIRMDELETION) == BST_CHECKED);
00178
00179 _pwndDownloads->m_wndDeleted.ShowWindow (SW_HIDE);
00180 try {
00181 _DldsMgr.ReadDeletedSettings ();
00182 }catch (...) {}
00183 _pwndDownloads->m_wndDeleted.ShowWindow (SW_SHOW);
00184
00185 CDialog::OnOK();
00186 }
00187
00188 void CDlgDeletedProperties::OnUsemax()
00189 {
00190 UpdateEnabled ();
00191 }
00192
00193 void CDlgDeletedProperties::OnWhatisthis()
00194 {
00195 _CHMgr.OnWT ();
00196 }