00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "Prg_UpdatePage.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(CPrg_UpdatePage, CPropertyPage)
00017
00018 CPrg_UpdatePage::CPrg_UpdatePage() : CPropertyPage(CPrg_UpdatePage::IDD)
00019 {
00020 m_psp.dwFlags |= PSP_USETITLE;
00021 m_psp.pszTitle = LS (L_UPDATE);
00022 }
00023
00024 CPrg_UpdatePage::~CPrg_UpdatePage()
00025 {
00026 }
00027
00028 void CPrg_UpdatePage::DoDataExchange(CDataExchange* pDX)
00029 {
00030 CPropertyPage::DoDataExchange(pDX);
00031
00032
00033
00034 }
00035
00036 BEGIN_MESSAGE_MAP(CPrg_UpdatePage, CPropertyPage)
00037
00038 ON_EN_CHANGE(IDC_UPDATEURL, OnChangeUpdateurl)
00039 ON_WM_CONTEXTMENU()
00040 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00041 ON_WM_HELPINFO()
00042 ON_BN_CLICKED(IDC_AUTOUPDATES_INSTALL, OnAutoupdatesInstall)
00043 ON_BN_CLICKED(IDC_AUTOUPDATES_NOTIFYONLY, OnAutoupdatesNotifyonly)
00044 ON_BN_CLICKED(IDC_AUTOUPDATES_TURNOFF, OnAutoupdatesTurnoff)
00045
00046 END_MESSAGE_MAP()
00047
00048 BOOL CPrg_UpdatePage::OnInitDialog()
00049 {
00050 CPropertyPage::OnInitDialog();
00051
00052 SetDlgItemText (IDC_UPDATEURL, _UpdateMgr.m_strUpdateUrl);
00053 CheckRadioButton (IDC_AUTOUPDATES_INSTALL, IDC_AUTOUPDATES_TURNOFF,
00054 IDC_AUTOUPDATES_INSTALL + _UpdateMgr.m_enAUT);
00055
00056 ApplyLanguage ();
00057
00058 UpdateEnabled ();
00059
00060 return TRUE;
00061 }
00062
00063 void CPrg_UpdatePage::OnChangeUpdateurl()
00064 {
00065 SetModified ();
00066 }
00067
00068 BOOL CPrg_UpdatePage::OnApply()
00069 {
00070 CString str;
00071
00072 GetDlgItemText (IDC_UPDATEURL, str);
00073
00074
00075 if (str [str.GetLength () - 1] != '\\' && str [str.GetLength () - 1] != '/')
00076 str += '/';
00077
00078 fsURL url;
00079 if (url.Crack (str) != IR_SUCCESS || *url.GetHostName () == 0)
00080 {
00081 MessageBox (LS (L_CHECKURL), LS (L_INPERR), MB_ICONEXCLAMATION);
00082 CEdit *pE = (CEdit*) GetDlgItem (IDC_UPDATEURL);
00083 pE->SetSel (0, -1);
00084 pE->SetFocus ();
00085 return FALSE;
00086 }
00087
00088 _UpdateMgr.m_strUpdateUrl = _UpdateMgr.m_strDlFullInstallPath = _UpdateMgr.m_strDlUpgradesPath = str;
00089
00090 if (IsDlgButtonChecked (IDC_AUTOUPDATES_INSTALL) == BST_CHECKED)
00091 _UpdateMgr.m_enAUT = AUT_DLANDINST;
00092 else if (IsDlgButtonChecked (IDC_AUTOUPDATES_NOTIFYONLY) == BST_CHECKED)
00093 _UpdateMgr.m_enAUT = AUT_NOTIFYONLY;
00094 else
00095 _UpdateMgr.m_enAUT = AUT_TURNOFF;
00096
00097 return CPropertyPage::OnApply();
00098 }
00099
00100 void CPrg_UpdatePage::OnContextMenu(CWnd* , CPoint point)
00101 {
00102 PrepareCHMgr (point);
00103 _CHMgr.ShowMenu ();
00104 }
00105
00106 void CPrg_UpdatePage::OnWhatisthis()
00107 {
00108 _CHMgr.OnWT ();
00109 }
00110
00111 void CPrg_UpdatePage::ApplyLanguage()
00112 {
00113 fsDlgLngInfo lnginfo [] = {
00114 fsDlgLngInfo (IDC_AUTOUPDATES_INSTALL, L_AUTOUPDATE_DLANDINST),
00115 fsDlgLngInfo (IDC_AUTOUPDATES_NOTIFYONLY, L_AUTOUPDATE_NOTIFYONLY),
00116 fsDlgLngInfo (IDC_AUTOUPDATES_TURNOFF, L_AUTOUPDATE_TURNOFF),
00117 };
00118
00119 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00120 }
00121
00122 void CPrg_UpdatePage::PrepareCHMgr(CPoint point)
00123 {
00124 fsCtrlContextHelp aCH1 [] = {
00125 fsCtrlContextHelp (IDC__URL, LS (L_UPDSERVURLHERE)),
00126 fsCtrlContextHelp (IDC_UPDATEURL, LS (L_UPDSERVURLHERE)),
00127 };
00128
00129 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00130 CopyMemory (aCH, aCH1, sizeof (aCH));
00131
00132 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00133 }
00134
00135 BOOL CPrg_UpdatePage::OnHelpInfo(HELPINFO* pHelpInfo)
00136 {
00137 RECT rc;
00138 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00139 if (pItem == NULL)
00140 return TRUE;
00141 pItem->GetWindowRect (&rc);
00142 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00143 {
00144 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00145 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00146 }
00147 PrepareCHMgr (pHelpInfo->MousePos);
00148 _CHMgr.OnWT ();
00149 return TRUE;
00150 }
00151
00152 void CPrg_UpdatePage::OnAutoupdatesInstall()
00153 {
00154 UpdateEnabled ();
00155 SetModified ();
00156 }
00157
00158 void CPrg_UpdatePage::OnAutoupdatesNotifyonly()
00159 {
00160 UpdateEnabled ();
00161 SetModified ();
00162 }
00163
00164 void CPrg_UpdatePage::OnAutoupdatesTurnoff()
00165 {
00166 UpdateEnabled ();
00167 SetModified ();
00168 }
00169
00170 void CPrg_UpdatePage::UpdateEnabled()
00171 {
00172 BOOL b = IsDlgButtonChecked (IDC_AUTOUPDATES_TURNOFF) != BST_CHECKED;
00173 GetDlgItem (IDC__URL)->EnableWindow (b);
00174 GetDlgItem (IDC_UPDATEURL)->EnableWindow (b);
00175 }