preferencesuipage.cpp
来自「管理项目进度工具的原代码」· C++ 代码 · 共 209 行
CPP
209 行
// PreferencesUIPage.cpp : implementation file
//
#include "stdafx.h"
#include "todolist.h"
#include "PreferencesUIPage.h"
#include "tdcenum.h"
#include "..\shared\misc.h"
#include "..\shared\enstring.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPreferencesUIPage property page
IMPLEMENT_DYNCREATE(CPreferencesUIPage, CPreferencesPageBase)
CPreferencesUIPage::CPreferencesUIPage(const CContentMgr* pMgr) :
CPreferencesPageBase(CPreferencesUIPage::IDD),
m_pContentMgr(pMgr),
m_cbCommentsFmt(pMgr),
m_nDefaultCommentsFormat(-1)
{
//{{AFX_DATA_INIT(CPreferencesUIPage)
m_bMultiSelCategoryFilter = FALSE;
m_bAutoReFilter = FALSE;
m_bRestoreTasklistFilters = FALSE;
//}}AFX_DATA_INIT
}
CPreferencesUIPage::~CPreferencesUIPage()
{
}
void CPreferencesUIPage::DoDataExchange(CDataExchange* pDX)
{
CPreferencesPageBase::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPreferencesUIPage)
DDX_Check(pDX, IDC_SHOWCTRLSASCOLUMNS, m_bShowCtrlsAsColumns);
DDX_Check(pDX, IDC_SHOWCOMMENTSALWAYS, m_bShowCommentsAlways);
DDX_Check(pDX, IDC_AUTOREPOSCTRLS, m_bAutoReposCtrls);
DDX_Check(pDX, IDC_SHAREDCOMMENTSHEIGHT, m_bSharedCommentsHeight);
DDX_Check(pDX, IDC_AUTOHIDETABBAR, m_bAutoHideTabbar);
DDX_Check(pDX, IDC_STACKTABBARITEMS, m_bStackTabbarItems);
DDX_Check(pDX, IDC_RIGHTALIGNLABELS, m_bRightAlignLabels);
DDX_Check(pDX, IDC_FOCUSTREEONENTER, m_bFocusTreeOnEnter);
DDX_Check(pDX, IDC_LARGETOOLBARICONS, m_bLargeToolbarIcons);
DDX_CBIndex(pDX, IDC_NEWTASKPOSITION, m_nNewTaskPos);
DDX_CBIndex(pDX, IDC_NEWSUBTASKPOSITION, m_nNewSubtaskPos);
DDX_Check(pDX, IDC_KEEPTABSORDERED, m_bKeepTabsOrdered);
DDX_Check(pDX, IDC_SHOWTASKLISTCLOSEBTN, m_bShowTasklistCloseButton);
DDX_Check(pDX, IDC_ENABLECTRLMBTNCLOSE, m_bEnableCtrlMBtnClose);
DDX_Check(pDX, IDC_SHOWEDITMENUASCOLUMNS, m_bShowEditMenuAsColumns);
DDX_Check(pDX, IDC_MULTISELCATFILTER, m_bMultiSelCategoryFilter);
DDX_Check(pDX, IDC_AUTOREFILTER, m_bAutoReFilter);
DDX_Check(pDX, IDC_RESTORETASKLISTFILTERS, m_bRestoreTasklistFilters);
DDX_CBIndex(pDX, IDC_COMMENTPOS, m_nCommentsPos);
DDX_Check(pDX, IDC_MULTISELALLOCTOFILTER, m_bMultiSelAllocToFilter);
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_COMMENTSFORMAT, m_cbCommentsFmt);
DDX_CBIndex(pDX, IDC_COMMENTSFORMAT, m_nDefaultCommentsFormat);
DDX_Check(pDX, IDC_AUTORESORT, m_bAutoReSort);
DDX_Check(pDX, IDC_SORTVISIBLEONLY, m_bSortVisibleOnly);
DDX_Check(pDX, IDC_SORTDONETASKSATBOTTOM, m_bSortDoneTasksAtBottom);
DDX_Check(pDX, IDC_ENABLEHEADERSORTING, m_bEnableHeaderSorting);
// DDX_Check(pDX, IDC_RTLCOMMENTS, m_bRTLComments);
}
BEGIN_MESSAGE_MAP(CPreferencesUIPage, CPreferencesPageBase)
//{{AFX_MSG_MAP(CPreferencesUIPage)
//}}AFX_MSG_MAP
ON_CBN_SELCHANGE(IDC_COMMENTSFORMAT, OnSelchangeCommentsformat)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPreferencesUIPage message handlers
BOOL CPreferencesUIPage::OnInitDialog()
{
CPreferencesPageBase::OnInitDialog();
m_mgrGroupLines.AddGroupLine(IDC_TOOLBARGROUP, *this);
m_mgrGroupLines.AddGroupLine(IDC_SORTGROUP, *this);
m_mgrGroupLines.AddGroupLine(IDC_TABBARGROUP, *this);
m_mgrGroupLines.AddGroupLine(IDC_COMMENTSGROUP, *this);
m_mgrGroupLines.AddGroupLine(IDC_FILTERGROUP, *this);
m_cbCommentsFmt.SetCurSel(m_nDefaultCommentsFormat);
GetDlgItem(IDC_COMMENTSFORMAT)->EnableWindow(m_nDefaultCommentsFormat != CB_ERR);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPreferencesUIPage::OnSelchangeCommentsformat()
{
m_cbCommentsFmt.GetSelectedFormat(m_cfDefault);
}
void CPreferencesUIPage::LoadPreferences(const CPreferencesStorage& prefs)
{
// load settings
m_bShowCtrlsAsColumns = prefs.GetProfileInt("Preferences", "ShowCtrlsAsColumns", FALSE);
m_bShowEditMenuAsColumns = prefs.GetProfileInt("Preferences", "ShowEditMenuAsColumns", FALSE);
m_bShowCommentsAlways = prefs.GetProfileInt("Preferences", "ShowCommentsAlways", FALSE);
m_bAutoReposCtrls = prefs.GetProfileInt("Preferences", "AutoReposCtrls", TRUE);
m_bSpecifyToolbarImage = prefs.GetProfileInt("Preferences", "SpecifyToolbarImage", FALSE);
m_bSharedCommentsHeight = prefs.GetProfileInt("Preferences", "SharedCommentsHeight", TRUE);
m_bAutoHideTabbar = prefs.GetProfileInt("Preferences", "AutoHideTabbar", TRUE);
m_bStackTabbarItems = prefs.GetProfileInt("Preferences", "StackTabbarItems", FALSE);
m_bRightAlignLabels = prefs.GetProfileInt("Preferences", "RightAlignLabels", TRUE);
m_bFocusTreeOnEnter = prefs.GetProfileInt("Preferences", "FocusTreeOnEnter", FALSE);
m_bLargeToolbarIcons = prefs.GetProfileInt("Preferences", "LargeToolbarIcons", TRUE);
m_nNewTaskPos = prefs.GetProfileInt("Preferences", "NewTaskPos", PUIP_BELOW);
m_nNewSubtaskPos = prefs.GetProfileInt("Preferences", "NewSubtaskPos", PUIP_BOTTOM);
m_bKeepTabsOrdered = prefs.GetProfileInt("Preferences", "KeepTabsOrdered", FALSE);
m_bShowTasklistCloseButton = prefs.GetProfileInt("Preferences", "ShowTasklistCloseButton", TRUE);
m_bEnableCtrlMBtnClose = prefs.GetProfileInt("Preferences", "EnableCtrlMBtnClose", TRUE);
m_bEnableHeaderSorting = prefs.GetProfileInt("Preferences", "EnableHeaderSorting", TRUE);
m_bAutoReSort = prefs.GetProfileInt("Preferences", "AutoReSort", FALSE);
m_bSortVisibleOnly = prefs.GetProfileInt("Preferences", "SortVisibleOnly", FALSE);
m_bSortDoneTasksAtBottom = prefs.GetProfileInt("Preferences", "SortDoneTasksAtBottom", TRUE);
m_bRTLComments = prefs.GetProfileInt("Preferences", "RTLComments", FALSE);
m_nCommentsPos = prefs.GetProfileInt("Preferences", "VertComments", PUIP_RIGHTCOMMENTS);
m_bMultiSelCategoryFilter = prefs.GetProfileInt("Preferences", "MultiSelCategoryFilter", TRUE);
m_bAutoReFilter = prefs.GetProfileInt("Preferences", "AutoReFilter", FALSE);
m_bRestoreTasklistFilters = prefs.GetProfileInt("Preferences", "RestoreTasklistFilters", FALSE);
m_bMultiSelAllocToFilter = prefs.GetProfileInt("Preferences", "MultiSelAllocToFilter", TRUE);
// m_b = prefs.GetProfileInt("Preferences", "", FALSE);
// comments format
if (m_cbCommentsFmt.IsInitialized())
{
m_cfDefault = prefs.GetProfileString("Preferences", "DefaultCommentsFormatID");
m_nDefaultCommentsFormat = m_cbCommentsFmt.SetSelectedFormat(m_cfDefault);
// fallback
if (m_nDefaultCommentsFormat == CB_ERR)
m_nDefaultCommentsFormat = prefs.GetProfileInt("Preferences", "DefaultCommentsFormat", -1);
if (m_nDefaultCommentsFormat == CB_ERR || m_nDefaultCommentsFormat >= m_cbCommentsFmt.GetCount())
{
ASSERT (m_cbCommentsFmt.GetCount());
m_nDefaultCommentsFormat = 0;
}
m_cbCommentsFmt.SetCurSel(m_nDefaultCommentsFormat);
m_cbCommentsFmt.GetSelectedFormat(m_cfDefault);
}
}
void CPreferencesUIPage::SavePreferences(CPreferencesStorage& prefs)
{
// save settings
prefs.WriteProfileInt("Preferences", "ShowCtrlsAsColumns", m_bShowCtrlsAsColumns);
prefs.WriteProfileInt("Preferences", "ShowEditMenuAsColumns", m_bShowEditMenuAsColumns);
prefs.WriteProfileInt("Preferences", "ShowCommentsAlways", m_bShowCommentsAlways);
prefs.WriteProfileInt("Preferences", "AutoReposCtrls", m_bAutoReposCtrls);
prefs.WriteProfileInt("Preferences", "SpecifyToolbarImage", m_bSpecifyToolbarImage);
prefs.WriteProfileInt("Preferences", "SharedCommentsHeight", m_bSharedCommentsHeight);
prefs.WriteProfileInt("Preferences", "AutoHideTabbar", m_bAutoHideTabbar);
prefs.WriteProfileInt("Preferences", "StackTabbarItems", m_bStackTabbarItems);
prefs.WriteProfileInt("Preferences", "RightAlignLabels", m_bRightAlignLabels);
prefs.WriteProfileInt("Preferences", "FocusTreeOnEnter", m_bFocusTreeOnEnter);
prefs.WriteProfileInt("Preferences", "LargeToolbarIcons", m_bLargeToolbarIcons);
prefs.WriteProfileInt("Preferences", "NewTaskPos", m_nNewTaskPos);
prefs.WriteProfileInt("Preferences", "NewSubtaskPos", m_nNewSubtaskPos);
prefs.WriteProfileInt("Preferences", "KeepTabsOrdered", m_bKeepTabsOrdered);
prefs.WriteProfileInt("Preferences", "ShowTasklistCloseButton", m_bShowTasklistCloseButton);
prefs.WriteProfileInt("Preferences", "EnableCtrlMBtnClose", m_bEnableCtrlMBtnClose);
prefs.WriteProfileInt("Preferences", "EnableHeaderSorting", m_bEnableHeaderSorting);
prefs.WriteProfileInt("Preferences", "AutoReSort", m_bAutoReSort);
prefs.WriteProfileInt("Preferences", "SortVisibleOnly", m_bSortVisibleOnly);
prefs.WriteProfileInt("Preferences", "SortDoneTasksAtBottom", m_bSortDoneTasksAtBottom);
prefs.WriteProfileInt("Preferences", "RTLComments", m_bRTLComments);
prefs.WriteProfileInt("Preferences", "VertComments", m_nCommentsPos);
prefs.WriteProfileInt("Preferences", "MultiSelCategoryFilter", m_bMultiSelCategoryFilter);
prefs.WriteProfileInt("Preferences", "AutoReFilter", m_bAutoReFilter);
prefs.WriteProfileInt("Preferences", "RestoreTasklistFilters", m_bRestoreTasklistFilters);
prefs.WriteProfileInt("Preferences", "MultiSelAllocToFilter", m_bMultiSelAllocToFilter);
// prefs.WriteProfileInt("Preferences", "", m_b);
// comments format
if (m_pContentMgr)
{
prefs.WriteProfileInt("Preferences", "DefaultCommentsFormat", m_nDefaultCommentsFormat);
prefs.WriteProfileString("Preferences", "DefaultCommentsFormatID", m_cfDefault);
}
}
DWORD CPreferencesUIPage::GetMultiSelFilterFlags() const
{
DWORD dwFlags = 0;
if (m_bMultiSelAllocToFilter)
dwFlags |= FB_MULTISELALLOCTO;
if (m_bMultiSelCategoryFilter)
dwFlags |= FB_MULTISELCAT;
return dwFlags;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?