00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "Prg_GeneralPage.h"
00009 #include "MainFrm.h"
00010 #include "fsIEUserAgent.h"
00011 #include "Prg_GeneralPage_FWDlg.h"
00012
00013 #ifdef _DEBUG
00014 #define new DEBUG_NEW
00015 #undef THIS_FILE
00016 static char THIS_FILE[] = __FILE__;
00017 #endif
00018
00019 IMPLEMENT_DYNCREATE(CPrg_GeneralPage, CPropertyPage)
00020
00021 CPrg_GeneralPage::CPrg_GeneralPage() : CPropertyPage(CPrg_GeneralPage::IDD)
00022 {
00023 m_psp.dwFlags |= PSP_USETITLE;
00024 m_psp.pszTitle = LS (L_GENERAL);
00025 }
00026
00027 CPrg_GeneralPage::~CPrg_GeneralPage()
00028 {
00029 }
00030
00031 void CPrg_GeneralPage::DoDataExchange(CDataExchange* pDX)
00032 {
00033 CPropertyPage::DoDataExchange(pDX);
00034
00035
00036
00037 }
00038
00039 BEGIN_MESSAGE_MAP(CPrg_GeneralPage, CPropertyPage)
00040
00041 ON_BN_CLICKED(IDC_AUTOSTART, OnAutostart)
00042 ON_BN_CLICKED(IDC_STARTMINIMIZED, OnStartminimized)
00043 ON_BN_CLICKED(IDC_MINTOTRAY, OnMintotray)
00044 ON_BN_CLICKED(IDC_CLOSEASMINIMIZE, OnCloseasminimize)
00045 ON_WM_CONTEXTMENU()
00046 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00047 ON_WM_HELPINFO()
00048 ON_BN_CLICKED(IDC_MODIFYIEUSERAGENT, OnModifyieuseragent)
00049 ON_BN_CLICKED(IDC_ADJUST_FW, OnAdjustFw)
00050
00051 END_MESSAGE_MAP()
00052
00053 BOOL CPrg_GeneralPage::OnInitDialog()
00054 {
00055 CPropertyPage::OnInitDialog();
00056
00057 CMainFrame *pFrame = (CMainFrame*) AfxGetApp ()->m_pMainWnd;
00058
00059 CheckDlgButton (IDC_AUTOSTART, _AutorunMgr.IsAutoStart () ? BST_CHECKED : BST_UNCHECKED);
00060 CheckDlgButton (IDC_STARTMINIMIZED, _App.Prg_StartMinimized () ? BST_CHECKED : BST_UNCHECKED);
00061
00062 CheckDlgButton (IDC_MINTOTRAY, pFrame->m_bMinToTray ? BST_CHECKED : BST_UNCHECKED);
00063 CheckDlgButton (IDC_CLOSEASMINIMIZE, pFrame->m_bCloseAsMinimize ? BST_CHECKED : BST_UNCHECKED);
00064 CheckDlgButton (IDC_MODIFYIEUSERAGENT, _App.ModifyIEUserAgent () ? BST_CHECKED : BST_UNCHECKED);
00065
00066 m_dlgFW.m_bDropBox = _App.View_FloatingWindow ();
00067 m_dlgFW.m_bInfoWnd = _App.View_FloatingInfoWindow ();
00068 m_dlgFW.m_bHideInFs = _App.FloatingWndsHideInFSMode ();
00069 m_dlgFW.m_DropBoxTrancparency = _App.DropBoxWndBlend ();
00070 m_dlgFW.m_InfoWndTrancparency = _App.DownloadsInfoWndBlend ();
00071
00072 m_bAutostartChanged = FALSE;
00073
00074 ApplyLanguage ();
00075
00076 return TRUE;
00077 }
00078
00079 void CPrg_GeneralPage::OnAutostart()
00080 {
00081 SetModified ();
00082 m_bAutostartChanged = TRUE;
00083 }
00084
00085 void CPrg_GeneralPage::OnStartminimized()
00086 {
00087 SetModified ();
00088 }
00089
00090 void CPrg_GeneralPage::OnMintotray()
00091 {
00092 SetModified ();
00093 }
00094
00095 void CPrg_GeneralPage::OnCloseasminimize()
00096 {
00097 SetModified ();
00098 }
00099
00100 BOOL CPrg_GeneralPage::OnApply()
00101 {
00102 CMainFrame *pFrame = (CMainFrame*) AfxGetApp ()->m_pMainWnd;
00103
00104 BOOL b = IsDlgButtonChecked (IDC_AUTOSTART) == BST_CHECKED;
00105 if (m_bAutostartChanged && FALSE == _AutorunMgr.SetAutoStart (b))
00106 {
00107 CheckDlgButton (IDC_AUTOSTART, !b ? BST_CHECKED : BST_UNCHECKED);
00108 m_bAutostartChanged = FALSE;
00109 }
00110
00111 b = IsDlgButtonChecked (IDC_MODIFYIEUSERAGENT) == BST_CHECKED;
00112 if (!b != !_App.ModifyIEUserAgent ())
00113 {
00114 fsIEUserAgent ua;
00115 if (b)
00116 ua.SetPP (IE_USERAGENT_ADDITION);
00117 else
00118 ua.RemovePP (IE_USERAGENT_ADDITION);
00119 _App.ModifyIEUserAgent (b);
00120 }
00121
00122 _App.Prg_StartMinimized (IsDlgButtonChecked (IDC_STARTMINIMIZED) == BST_CHECKED);
00123
00124 pFrame->m_pFloatWndsThread->m_wndFloating.Show (m_dlgFW.m_bDropBox);
00125 if (m_dlgFW.m_bInfoWnd)
00126 {
00127 _App.View_FloatingInfoWindow (TRUE);
00128 _pwndDownloads->UpdateTrayIconPlusOthers ();
00129 }
00130 else
00131 {
00132 pFrame->m_pFloatWndsThread->m_wndFloatingInfo.TurnOffWindow ();
00133 }
00134
00135 _App.DropBoxWndBlend (m_dlgFW.m_DropBoxTrancparency);
00136 pFrame->m_pFloatWndsThread->m_wndFloating.SetBlend (m_dlgFW.m_DropBoxTrancparency);
00137
00138 _App.DownloadsInfoWndBlend (m_dlgFW.m_InfoWndTrancparency);
00139 pFrame->m_pFloatWndsThread->m_wndFloatingInfo.SetBlend (m_dlgFW.m_InfoWndTrancparency);
00140
00141 _App.FloatingWndsHideInFSMode (m_dlgFW.m_bHideInFs);
00142 pFrame->m_pFloatWndsThread->m_wndFloating.UpdateTimer ();
00143
00144 pFrame->m_bCloseAsMinimize = IsDlgButtonChecked (IDC_CLOSEASMINIMIZE) == BST_CHECKED;
00145 pFrame->m_bMinToTray = IsDlgButtonChecked (IDC_MINTOTRAY) == BST_CHECKED;
00146
00147 return CPropertyPage::OnApply();
00148 }
00149
00150 void CPrg_GeneralPage::OnContextMenu(CWnd* , CPoint point)
00151 {
00152 PrepareCHMgr (point);
00153 _CHMgr.ShowMenu ();
00154 }
00155
00156 void CPrg_GeneralPage::OnWhatisthis()
00157 {
00158 _CHMgr.OnWT ();
00159 }
00160
00161 void CPrg_GeneralPage::ApplyLanguage()
00162 {
00163 fsDlgLngInfo lnginfo [] = {
00164 fsDlgLngInfo (IDC__STARTUP, L_STARTUP),
00165 fsDlgLngInfo (IDC_AUTOSTART, L_AUTOSTART),
00166 fsDlgLngInfo (IDC_STARTMINIMIZED, L_STARTMINIMIZED),
00167 fsDlgLngInfo (IDC__SYSTEM, L_SYSTEM),
00168 fsDlgLngInfo (IDC_MINTOTRAY, L_MINTOTRAY),
00169 fsDlgLngInfo (IDC_CLOSEASMINIMIZE, L_CLOSEASMINIMIZE),
00170 fsDlgLngInfo (IDC_ADJUST_FW, L_ADJUST_FW),
00171 fsDlgLngInfo (IDC_MODIFYIEUSERAGENT, L_MODIFYIEUSERAGENT),
00172 };
00173
00174 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00175 }
00176
00177 void CPrg_GeneralPage::PrepareCHMgr(CPoint point)
00178 {
00179 fsCtrlContextHelp aCH1 [] = {
00180 fsCtrlContextHelp (IDC_AUTOSTART, LS (L_AUTOSTARTHERE)),
00181 fsCtrlContextHelp (IDC_STARTMINIMIZED, LS (L_STARTMINIMIZEDHERE)),
00182 fsCtrlContextHelp (IDC_MINTOTRAY, LS (L_MINTOTRAYHERE)),
00183 fsCtrlContextHelp (IDC_CLOSEASMINIMIZE, LS (L_CLOSEASMINHERE)),
00184 fsCtrlContextHelp (IDC_MODIFYIEUSERAGENT, LS (L_MODIFYIEUSERAGENT_HERE)),
00185 };
00186
00187 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00188 CopyMemory (aCH, aCH1, sizeof (aCH));
00189
00190 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00191 }
00192
00193 BOOL CPrg_GeneralPage::OnHelpInfo(HELPINFO* pHelpInfo)
00194 {
00195 RECT rc;
00196 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00197 if (pItem == NULL)
00198 return TRUE;
00199 pItem->GetWindowRect (&rc);
00200 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00201 {
00202 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00203 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00204 }
00205 PrepareCHMgr (pHelpInfo->MousePos);
00206 _CHMgr.OnWT ();
00207 return TRUE;
00208 }
00209
00210 void CPrg_GeneralPage::OnModifyieuseragent()
00211 {
00212 SetModified ();
00213 }
00214
00215 void CPrg_GeneralPage::OnAdjustFw()
00216 {
00217 if (IDOK == _DlgMgr.DoModal (&m_dlgFW))
00218 SetModified ();
00219 }
00220
00221 void CPrg_GeneralPage::OnCancel()
00222 {
00223 CMainFrame *pFrame = (CMainFrame*) AfxGetApp ()->m_pMainWnd;
00224 pFrame->m_pFloatWndsThread->m_wndFloating.SetBlend (_App.DropBoxWndBlend ());
00225 pFrame->m_pFloatWndsThread->m_wndFloatingInfo.SetBlend (_App.DownloadsInfoWndBlend ());
00226
00227 CPropertyPage::OnCancel();
00228 }