📄 donutoptions.h
字号:
pr.QueryValue(m_dwAutoRefreshStyle, _T("Auto_Refresh_Style"));
_SetTimer();
if (bGetChildFrameState)
MtlGetProfileChildFrameState(pr, __m_pDonutView->GetParent(), SW_SHOWNORMAL, true, _T("child."));
// load extended style
pr.QueryValue(m_dwExStyle, _T("Extended_Style"));// never give up yeah.
if (_check_flag(DVS_EX_OPENNEWWIN, m_dwExStyle)) {
MtlSendOnCommand(__m_pDonutView->GetParent(), ID_DOCHOSTUI_OPENNEWWIN);
}
pr.Close();
}
// Update command UI and handlers
BEGIN_UPDATE_COMMAND_UI_MAP(CDonutViewOption)
UPDATE_COMMAND_UI_SETCHECK_IF_PASS(ID_AUTOREFRESH_NONE, m_dwAutoRefreshStyle == 0)
UPDATE_COMMAND_UI_SETCHECK_FLAG(ID_AUTOREFRESH_15SEC, DVS_AUTOREFRESH_15SEC, m_dwAutoRefreshStyle)
UPDATE_COMMAND_UI_SETCHECK_FLAG(ID_AUTOREFRESH_30SEC, DVS_AUTOREFRESH_30SEC, m_dwAutoRefreshStyle)
UPDATE_COMMAND_UI_SETCHECK_FLAG(ID_AUTOREFRESH_1MIN, DVS_AUTOREFRESH_1MIN, m_dwAutoRefreshStyle)
UPDATE_COMMAND_UI_SETCHECK_FLAG(ID_AUTOREFRESH_2MIN, DVS_AUTOREFRESH_2MIN, m_dwAutoRefreshStyle)
UPDATE_COMMAND_UI_SETCHECK_FLAG(ID_AUTOREFRESH_5MIN, DVS_AUTOREFRESH_5MIN, m_dwAutoRefreshStyle)
UPDATE_COMMAND_UI_ENABLE_SETCHECK_FLAG(ID_DOCHOSTUI_OPENNEWWIN, DVS_EX_OPENNEWWIN, m_dwExStyle)
END_UPDATE_COMMAND_UI_MAP()
};
#define FILENEW_BLANK 0x00000001L
#define FILENEW_COPY 0x00000002L
#define FILENEW_HOME 0x00000004L
class CFileNewOption
{
public:
static DWORD s_dwFlags;
static void GetProfile()
{
CIniSection pr;
pr.Open(_szIniFileName, _T("Main"));
pr.QueryValue(s_dwFlags, _T("File_New_Option"));
pr.Close();
}
static void WriteProfile()
{
CIniSection pr;
pr.Open(_szIniFileName, _T("Main"));
pr.SetValue(s_dwFlags, _T("File_New_Option"));
pr.Close();
}
};
__declspec(selectany) DWORD CFileNewOption::s_dwFlags = FILENEW_BLANK;
class CFileNewPropertyPage : public CPropertyPageImpl<CFileNewPropertyPage>,
public CWinDataExchange<CFileNewPropertyPage>
{
public:
// Constants
enum { IDD = IDD_PROPPAGE_FILENEW };
// Data members
int m_nRadio;
// DDX map
BEGIN_DDX_MAP(CFileNewPropertyPage)
DDX_RADIO(IDC_RADIO_BLANK, m_nRadio)
// DDX_RADIO(IDC_RADIO_COPY, m_bCopy)
// DDX_RADIO(IDC_RADIO_HOME, m_bHome)
END_DDX_MAP()
// Constructor
CFileNewPropertyPage()
{
_SetData();
}
// Overrides
BOOL OnSetActive()
{
SetModified(TRUE);
return DoDataExchange(FALSE);
}
BOOL OnKillActive()
{
return DoDataExchange(TRUE);
}
BOOL OnApply()
{
if (DoDataExchange(TRUE)) {
_GetData();
return TRUE;
}
else
return FALSE;
}
// Message map and handlers
BEGIN_MSG_MAP(CFileNewPropertyPage)
CHAIN_MSG_MAP(CPropertyPageImpl<CFileNewPropertyPage>)
END_MSG_MAP()
// Implementation
protected:
void _GetData()
{
// update dl control flags
CFileNewOption::s_dwFlags = 0;
switch (m_nRadio) {
case 0:
CFileNewOption::s_dwFlags = FILENEW_BLANK;
break;
case 1:
CFileNewOption::s_dwFlags = FILENEW_COPY;
break;
case 2:
CFileNewOption::s_dwFlags = FILENEW_HOME;
break;
default:
ATLASSERT(FALSE);
break;
}
}
void _SetData()
{
if (CFileNewOption::s_dwFlags == FILENEW_BLANK)
m_nRadio = 0;
else if (CFileNewOption::s_dwFlags == FILENEW_COPY)
m_nRadio = 1;
else if (CFileNewOption::s_dwFlags == FILENEW_HOME)
m_nRadio = 2;
else
ATLASSERT(FALSE);
// m_nRadio = CFileNewOption::s_dwFlags & FILENEW_BLANK ? TRUE : FALSE;
// m_bCopy = CFileNewOption::s_dwFlags & FILENEW_COPY ? TRUE : FALSE;
// m_bHome = CFileNewOption::s_dwFlags & FILENEW_HOME ? TRUE : FALSE;
}
};
#define STARTUP_NOINITWIN 0x00000000L
#define STARTUP_GOHOME 0x00000001L
#define STARTUP_LATEST 0x00000002L
#define STARTUP_DFG 0x00000004L
class CStartUpOption
{
public:
static DWORD s_dwFlags;
static TCHAR s_szDfgPath[MAX_PATH];
static void GetProfile()
{
CIniSection pr;
pr.Open(_szIniFileName, _T("StartUp"));
pr.QueryValue(s_dwFlags, _T("StartUp_Flags"));
DWORD dwCount = MAX_PATH;
if (pr.QueryValue(s_szDfgPath, _T("Favorite_Group"), &dwCount) != ERROR_SUCCESS)
::lstrcpy(s_szDfgPath, _T(""));
pr.Close();
}
static void WriteProfile()
{
CIniSection pr;
pr.Open(_szIniFileName, _T("StartUp"));
pr.SetValue(s_dwFlags, _T("StartUp_Flags"));
pr.SetValue(s_szDfgPath, _T("Favorite_Group"));
pr.Close();
}
template <class _MainFrame>
static void StartUp(_MainFrame& __frame)
{
HWND hWndChild = NULL;
switch (s_dwFlags) {
case STARTUP_NOINITWIN:
break;
case STARTUP_GOHOME:
hWndChild = __frame.OnUserOpenFile(NULL, 0);
if (hWndChild) {
CWebBrowser2 browser = DonutGetIWebBrowser2(hWndChild);
if (browser.m_spBrowser != NULL)
browser.GoHome();
}
break;
case STARTUP_LATEST:
__frame.OnUserOpenFile(GetDefaultDFGFilePath(), 0);
break;
case STARTUP_DFG: {
CString strPath(s_szDfgPath);
if (!strPath.IsEmpty())
__frame.OnUserOpenFile(s_szDfgPath, 0);
}
break;
default:
ATLASSERT(FALSE);
break;
}
}
static CString GetDefaultDFGFilePath()
{
TCHAR sz[MAX_PATH];
::GetModuleFileName(_Module.GetModuleInstance(), sz, MAX_PATH);
CString strPath(sz);
int nIndex = strPath.ReverseFind(_T('\\'));
strPath = strPath.Left(nIndex);
strPath += _T("\\Default.dfg");
return strPath;
}
};
__declspec(selectany) DWORD CStartUpOption::s_dwFlags = STARTUP_GOHOME;
/*__declspec(selectany)*/ TCHAR CStartUpOption::s_szDfgPath[MAX_PATH];
class CStartUpPropertyPage : public CPropertyPageImpl<CStartUpPropertyPage>,
public CWinDataExchange<CStartUpPropertyPage>
{
public:
// Constants
enum { IDD = IDD_PROPPAGE_STARTUP };
// Data members
int m_nRadio;
CString m_strDfg;
CEdit m_edit;
// DDX map
BEGIN_DDX_MAP(CStartUpPropertyPage)
DDX_RADIO(IDC_RADIO_NOINITWIN, m_nRadio)
DDX_TEXT_LEN(IDC_EDIT_DFG, m_strDfg, MAX_PATH)
END_DDX_MAP()
// Constructor
CStartUpPropertyPage()
{
_SetData();
}
// Overrides
BOOL OnSetActive()
{
SetModified(TRUE);
if (m_edit.m_hWnd == NULL)
m_edit.Attach(GetDlgItem(IDC_EDIT_DFG));
return DoDataExchange(FALSE);
}
BOOL OnKillActive()
{
return DoDataExchange(TRUE);
}
BOOL OnApply()
{
if (DoDataExchange(TRUE)) {
_GetData();
return TRUE;
}
else
return FALSE;
}
// Message map and handlers
BEGIN_MSG_MAP(CStartUpPropertyPage)
COMMAND_ID_HANDLER_EX(IDC_BUTTON_EXPDFG, OnButton)
CHAIN_MSG_MAP(CPropertyPageImpl<CStartUpPropertyPage>)
END_MSG_MAP()
void OnButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/)
{
TCHAR szOldPath[MAX_PATH];// save current directory
::GetCurrentDirectory(MAX_PATH, szOldPath);
::SetCurrentDirectory(DonutGetFavoriteGroupFolder());
static const TCHAR szFilter[] = _T("Donut Favorite Group File(*.dfg)\0*.dfg\0\0");
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
fileDlg.m_ofn.lpstrTitle = _T("Start up Favorite Group");
if (fileDlg.DoModal() == IDOK) {
m_edit.SetWindowText(fileDlg.m_szFileName);
}
// restore current directory
::SetCurrentDirectory(szOldPath);
}
// Implementation
protected:
void _GetData()
{
// update dl control flags
CStartUpOption::s_dwFlags = 0;
switch (m_nRadio) {
case 0:
CStartUpOption::s_dwFlags = STARTUP_NOINITWIN;
break;
case 1:
CStartUpOption::s_dwFlags = STARTUP_GOHOME;
break;
case 2:
CStartUpOption::s_dwFlags = STARTUP_LATEST;
break;
case 3:
CStartUpOption::s_dwFlags = STARTUP_DFG;
break;
default:
ATLASSERT(FALSE);
break;
}
m_edit.GetWindowText(CStartUpOption::s_szDfgPath, MAX_PATH);
}
void _SetData()
{
if (CStartUpOption::s_dwFlags == STARTUP_NOINITWIN)
m_nRadio = 0;
else if (CStartUpOption::s_dwFlags == STARTUP_GOHOME)
m_nRadio = 1;
else if (CStartUpOption::s_dwFlags == STARTUP_LATEST)
m_nRadio = 2;
else if (CStartUpOption::s_dwFlags == STARTUP_DFG)
m_nRadio = 3;
else
ATLASSERT(FALSE);
m_strDfg = CStartUpOption::s_szDfgPath;
}
};
class COpenURLDlg : public CDialogImpl<COpenURLDlg>,
public CWinDataExchange<COpenURLDlg>
{
public:
// Declarations
enum { IDD = IDD_DIALOG_OPENURL };
// Data members
CString m_strEdit;
CEdit m_edit;
// Constructor
COpenURLDlg()
{
}
// DDX map
BEGIN_DDX_MAP(COpenURLDlg)
DDX_TEXT_LEN(IDC_EDIT_URL, m_strEdit, INTERNET_MAX_PATH_LENGTH)
END_DDX_MAP()
// Message map and handlers
BEGIN_MSG_MAP(COpenURLDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(IDOK, OnCloseCmd)
COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd)
COMMAND_ID_HANDLER_EX(IDC_BUTTON_REF, OnRefCmd)
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
CenterWindow(GetParent());
DoDataExchange(FALSE);
m_edit.Attach(GetDlgItem(IDC_EDIT_URL));
return 0;
}
LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
DoDataExchange(TRUE);
EndDialog(wID);
return 0;
}
void OnRefCmd(UINT /*wNotifyCode*/, int /*wID*/, HWND /*hWndCtl*/)
{
const TCHAR szFilter[] = _T("HTML File(*.htm;*.html)\0*.htm;*.html\0")
_T("Donut Favorite Group File(*.dfg)\0*.dfg\0")
_T("Text File(*.txt)\0*.txt\0")
_T("GIF File(*.gif)\0*.gif\0")
_T("JPEG File(*.jpg;*.jpeg)\0*.jpg;*.jpeg\0")
_T("AU僼 File(*.au)\0*.au\0")
_T("AIFF File(*.aif;*.aiff)\0*.aif;*.aiff\0")
_T("XBM File(*.xbm)\0*.xbm\0")
_T("All Files(*.*)\0*.*\0\0");
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
fileDlg.m_ofn.lpstrTitle = _T("Open");
if (fileDlg.DoModal() == IDOK) {
m_edit.SetWindowText(fileDlg.m_szFileName);
}
}
};
//////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -