00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "DDRDlg.h"
00009
00010 #ifdef _DEBUG
00011 #define new DEBUG_NEW
00012 #undef THIS_FILE
00013 static char THIS_FILE[] = __FILE__;
00014 #endif
00015
00016 CDDRDlg::CDDRDlg(CWnd* pParent )
00017 : CDialog(CDDRDlg::IDD, pParent)
00018 {
00019 m_enDDR = DDR_WITHFILE;
00020 m_bForAll = FALSE;
00021 m_bNoCancel = FALSE;
00022
00023
00024
00025 }
00026
00027 void CDDRDlg::DoDataExchange(CDataExchange* pDX)
00028 {
00029 CDialog::DoDataExchange(pDX);
00030
00031
00032
00033 }
00034
00035 BEGIN_MESSAGE_MAP(CDDRDlg, CDialog)
00036
00037 ON_BN_CLICKED(IDC_YES, OnYes)
00038 ON_BN_CLICKED(IDC_NO2, OnNo)
00039 ON_WM_CONTEXTMENU()
00040 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00041 ON_WM_HELPINFO()
00042 ON_BN_CLICKED(IDC_YESTOALL, OnYestoall)
00043 ON_BN_CLICKED(IDC_NOTOALL, OnNotoall)
00044 ON_WM_CLOSE()
00045
00046 END_MESSAGE_MAP()
00047
00048 void CDDRDlg::OnYes()
00049 {
00050 m_enDDR = DDR_WITHFILE;
00051 m_bDontAskAgain = IsDlgButtonChecked (IDC_DONTASKAGAIN) == BST_CHECKED;
00052 EndDialog (IDOK);
00053 }
00054
00055 void CDDRDlg::OnNo()
00056 {
00057 m_enDDR = DDR_FROMLISTONLY;
00058 m_bDontAskAgain = IsDlgButtonChecked (IDC_DONTASKAGAIN) == BST_CHECKED;
00059 EndDialog (IDOK);
00060 }
00061
00062 BOOL CDDRDlg::OnInitDialog()
00063 {
00064 CDialog::OnInitDialog();
00065
00066 ((CStatic*) GetDlgItem (IDC_DLGICON))->SetIcon (LoadIcon (NULL, IDI_QUESTION));
00067
00068
00069 CString str;
00070 str.Format ("%s\r\n \"%s\"\r\n%s", LS (L_DOWNLOAD2), m_strUrl, LS (L_WBDELETED));
00071 SetDlgItemText (IDC_MESSAGE, str);
00072
00073 if (m_bNoCancel)
00074 GetDlgItem (IDCANCEL)->EnableWindow (FALSE);
00075
00076 ApplyLanguage ();
00077
00078 return TRUE;
00079 }
00080
00081 void CDDRDlg::OnContextMenu(CWnd* , CPoint point)
00082 {
00083 PrepareCHMgr (point);
00084 _CHMgr.ShowMenu ();
00085 }
00086
00087 void CDDRDlg::OnWhatisthis()
00088 {
00089 _CHMgr.OnWT ();
00090 }
00091
00092 void CDDRDlg::ApplyLanguage()
00093 {
00094 fsDlgLngInfo lnginfo [] = {
00095 fsDlgLngInfo (IDC_DONTASKAGAIN, L_DONTASKAGAIN),
00096 fsDlgLngInfo (IDC_YES, L_YES),
00097 fsDlgLngInfo (IDC_YESTOALL, L_YESTOALL),
00098 fsDlgLngInfo (IDC_NO2, L_NO),
00099 fsDlgLngInfo (IDC_NOTOALL, L_NOTOALL),
00100 fsDlgLngInfo (IDCANCEL, L_CANCEL),
00101 };
00102
00103 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), L_ASKUSER);
00104 }
00105
00106 BOOL CDDRDlg::OnHelpInfo(HELPINFO* pHelpInfo)
00107 {
00108 RECT rc;
00109 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00110 if (pItem == NULL)
00111 return TRUE;
00112 pItem->GetWindowRect (&rc);
00113 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00114 {
00115 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00116 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00117 }
00118 PrepareCHMgr (pHelpInfo->MousePos);
00119 _CHMgr.OnWT ();
00120 return TRUE;
00121 }
00122
00123 void CDDRDlg::PrepareCHMgr(CPoint point)
00124 {
00125 fsCtrlContextHelp aCH1 [] = {
00126 fsCtrlContextHelp (IDC_DONTASKAGAIN, LS (L_DONTASKAGAINHERE)),
00127 fsCtrlContextHelp (IDC_YES, LS (L_YES)),
00128 fsCtrlContextHelp (IDC_YESTOALL, LS (L_YESTOALL)),
00129 fsCtrlContextHelp (IDC_NO_, LS (L_NO)),
00130 fsCtrlContextHelp (IDC_NOTOALL, LS (L_NOTOALL)),
00131 fsCtrlContextHelp (IDCANCEL, LS (L_CANCEL)),
00132 };
00133
00134 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00135 CopyMemory (aCH, aCH1, sizeof (aCH));
00136
00137 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00138 }
00139
00140 void CDDRDlg::OnYestoall()
00141 {
00142 m_enDDR = DDR_WITHFILE;
00143 m_bDontAskAgain = IsDlgButtonChecked (IDC_DONTASKAGAIN) == BST_CHECKED;
00144 m_bForAll = TRUE;
00145 EndDialog (IDOK);
00146 }
00147
00148 void CDDRDlg::OnNotoall()
00149 {
00150 m_enDDR = DDR_FROMLISTONLY;
00151 m_bDontAskAgain = IsDlgButtonChecked (IDC_DONTASKAGAIN) == BST_CHECKED;
00152 m_bForAll = TRUE;
00153 EndDialog (IDOK);
00154 }
00155
00156 void CDDRDlg::OnClose()
00157 {
00158 if (m_bNoCancel == FALSE)
00159 CDialog::OnClose();
00160 }