📄 options.cpp
字号:
m_ExtList.SetColumnWidth(1, LVSCW_AUTOSIZE);
OnSelChange();
return TRUE;
}
void CExtensionsPage::OnCancel()
{
CAutoPropPage::OnCancel();
CParserManager::Get().SetState(m_OldPMState);
}
void CExtensionsPage::OnSelChange()
{
const bool bHasSelected = m_ExtList.GetFirstSelectedItemPosition() != NULL;
GetDlgItem(IDC_DELETEEXT)->EnableWindow(bHasSelected);
}
void CExtensionsPage::OnItemchangedExtList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
OnSelChange();
*pResult = 0;
}
void CExtensionsPage::OnResetList()
{
MarkUndo();
CParserManager::Get().ResetPairs();
FillExtList();
SetModified(TRUE);
}
void CExtensionsPage::MarkUndo()
{
CParserManager::Get().GetState(m_LastUndoVal);
m_pUndoWnd->SetWindowText("Und&o");
m_pUndoWnd->EnableWindow(TRUE);
}
void CExtensionsPage::OnInsertext()
{
CInsertExtDlg dlg;
if (dlg.DoModal() == IDOK)
{
MarkUndo();
CParserManager::parser_fileext_pair tmp;
tmp.sExt = dlg.m_Ext;
tmp.pParser = dlg.m_pParser;
CParserManager::Get().AddPair(tmp);
FillExtList();
}
}
void CExtensionsPage::OnDeleteext()
{
MarkUndo();
int ndx = -1;
for (;;)
{
ndx = m_ExtList.GetNextItem(ndx, LVNI_SELECTED);
if (ndx < 0) break;
CParserManager::Get().RemovePair(m_ExtList.GetItemText(ndx, 0));
}
FillExtList();
}
void CExtensionsPage::OnUndo()
{
undo_t tmpState;
CParserManager::Get().GetState(tmpState);
CParserManager::Get().SetState(m_LastUndoVal);
m_LastUndoVal = tmpState;
FillExtList();
m_pUndoWnd->SetWindowText("Red&o");
}
int CExtensionsPage::OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex)
{
// return HandlerImpl_OnVKeyToItem(nKey, pListBox, nIndex);
return 0;
}
void CExtensionsPage::InsertPair(CParserManager::parser_fileext_pair& pair)
{
int ndx = m_ExtList.InsertItem(0, pair.sExt);
m_ExtList.SetItemData(ndx, (DWORD)pair.pParser);
m_ExtList.SetItem(ndx, 1, LVIF_TEXT,
CString(MAKEINTRESOURCE(pair.pParser->GetParserNameResourceID())),
0, 0, 0, 0);
}
void CExtensionsPage::FillExtList()
{
CParserManager::PairArray arr;
CParserManager::Get().GetPairs(arr);
m_ExtList.DeleteAllItems();
for (int i = 0; i < arr.GetSize(); ++i)
{
InsertPair(arr[i]);
}
OnSelChange();
SetModified();
}
/////////////////////////////////////////////////////////////////////////////
// CStatsPage property page
IMPLEMENT_DYNCREATE(CStatsPage, CAutoPropPage)
BEGIN_HELP_IDS(CStatsPage)
IDC_STATIC_DEFAULT_FILTER, IDC_DEFAULT_FILTER,
IDC_STATIC_DEFAULT_FILTER2, IDC_DEFAULT_FILTER
END_HELP_IDS()
CStatsPage::CStatsPage() : CAutoPropPage(CStatsPage::IDD)
{
//{{AFX_DATA_INIT(CStatsPage)
m_bCheckComments = FALSE;
m_bCountBlanks = FALSE;
m_bIncBad_Export = FALSE;
m_bIncBad_Grid = FALSE;
m_bIncFilter_Export = FALSE;
m_bIncFilter_Grid = FALSE;
//}}AFX_DATA_INIT
m_iHelpID = IDH_OPT_STATS;
varpair vars[] =
{
{ &m_bCountBlanks, &cfg_bProcessBlanks },
{ &m_bCheckComments, &cfg_bProcessComments },
{ &m_iDefFilter, &cfg_iDefaultFilter },
{ &m_sfFiltered, &cfg_ShowFiltered },
{ &m_sfBadFiles, &cfg_ShowBadFiles }
};
InitAutoVars(countof(vars), vars);
}
CStatsPage::~CStatsPage()
{
}
void CStatsPage::DoDataExchange(CDataExchange* pDX)
{
CAutoPropPage::DoDataExchange(pDX);
if (!pDX->m_bSaveAndValidate)
{
m_bIncBad_Grid = CHK_FLAG(m_sfBadFiles, SF_GRID);
m_bIncBad_Export = CHK_FLAG(m_sfBadFiles, SF_EXPORT);
m_bIncFilter_Grid = CHK_FLAG(m_sfFiltered, SF_GRID);
m_bIncFilter_Export = CHK_FLAG(m_sfFiltered, SF_EXPORT);
}
//{{AFX_DATA_MAP(CStatsPage)
DDX_Control(pDX, IDC_DEFAULT_FILTER, m_DefFilter);
DDX_Check(pDX, IDC_CHECKCOMMENTS, m_bCheckComments);
DDX_Check(pDX, IDC_COUNTBLANK, m_bCountBlanks);
DDX_Check(pDX, IDC_INCBAD_EXPORT, m_bIncBad_Export);
DDX_Check(pDX, IDC_INCBAD_GRID, m_bIncBad_Grid);
DDX_Check(pDX, IDC_INCFILTER_EXPORT, m_bIncFilter_Export);
DDX_Check(pDX, IDC_INCFILTER_GRID, m_bIncFilter_Grid);
//}}AFX_DATA_MAP
if (!pDX->m_bSaveAndValidate)
{
m_DefFilter.SetCurSel(m_iDefFilter);
}
else
{
m_iDefFilter = m_DefFilter.GetCurSel();
if (m_iDefFilter < 0 ||
m_iDefFilter > m_DefFilter.GetCount())
{
m_iDefFilter = 0;
}
m_sfBadFiles = 0;
if (m_bIncBad_Export) m_sfBadFiles |= SF_EXPORT;
if (m_bIncBad_Grid) m_sfBadFiles |= SF_GRID;
m_sfFiltered = 0;
if (m_bIncFilter_Export) m_sfFiltered |= SF_EXPORT;
if (m_bIncFilter_Grid) m_sfFiltered |= SF_GRID;
}
}
BEGIN_MESSAGE_MAP(CStatsPage, CAutoPropPage)
//{{AFX_MSG_MAP(CStatsPage)
ON_BN_CLICKED(IDC_CHECKCOMMENTS, DoModified)
ON_BN_CLICKED(IDC_COUNTBLANK, DoModified)
ON_CBN_SELCHANGE(IDC_DEFAULT_FILTER, DoModified)
ON_BN_CLICKED(IDC_INCFILTER_GRID, DoModified)
ON_BN_CLICKED(IDC_INCFILTER_EXPORT, DoIncFilterExport)
ON_BN_CLICKED(IDC_INCBAD_GRID, DoModified)
ON_BN_CLICKED(IDC_INCBAD_EXPORT, OnIncBadExport)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStatsPage message handlers
BOOL CStatsPage::OnInitDialog()
{
CAutoPropPage::OnInitDialog();
PopuplateDefaultFilters(g_pWorkspaceInfo);
return TRUE;
}
void CStatsPage::PopuplateDefaultFilters(IWorkspaceInfo *pWI)
{
const int nWorkspaceFilters = pWI->GetWorkspaceFilterCount();
ASSERT(nWorkspaceFilters > 0);
for (int i = 0; i < nWorkspaceFilters; ++i)
{
CString cStr;
cStr = pWI->GetWorkspaceFilterName(i);
cStr.Insert(0, '<');
cStr += '>';
const int ndx = m_DefFilter.AddString(cStr);
m_DefFilter.SetItemData(ndx, i);
}
UpdateData(FALSE);
}
void CStatsPage::DoModified()
{
SetModified();
}
void CStatsPage::DoIncFilterExport()
{
bool bDoModify = true;
UpdateData();
if (m_bIncFilter_Export)
{
if (AfxMessageBox(IDS_WARN_SPECIAL_FILES_IN_EXPORT,
MB_YESNO | MB_ICONWARNING) != IDYES)
{
m_sfFiltered &= ~SF_EXPORT;
UpdateData(FALSE);
bDoModify = false;
}
}
if (bDoModify) DoModified();
}
void CStatsPage::OnIncBadExport()
{
bool bDoModify = true;
UpdateData();
if (m_bIncBad_Export)
{
if (AfxMessageBox(IDS_WARN_SPECIAL_FILES_IN_EXPORT,
MB_YESNO | MB_ICONWARNING) != IDYES)
{
m_sfBadFiles &= ~SF_EXPORT;
UpdateData(FALSE);
bDoModify = false;
}
}
if (bDoModify) DoModified();
}
/////////////////////////////////////////////////////////////////////////////
// COptionsPage property page
IMPLEMENT_DYNCREATE(COptionsPage, CAutoPropPage)
BEGIN_HELP_IDS(COptionsPage)
IDC_STYLESHEET, IDC_XSL_FIXED
END_HELP_IDS()
COptionsPage::COptionsPage() : CAutoPropPage(COptionsPage::IDD)
{
//{{AFX_DATA_INIT(COptionsPage)
m_XSLType = -1;
m_sXSLName = _T("");
//}}AFX_DATA_INIT
m_iHelpID = IDH_OPT_OPT;
varpair vars[] =
{
{ &m_XSLType, (int *)&cfg_XSLTUsage },
};
strpair strs[] =
{
{ &m_sXSLName, &cfg_sXSLTTemplate }
};
InitAutoVars(countof(vars), vars);
InitAutoStrs(countof(strs), strs);
}
COptionsPage::~COptionsPage()
{
}
void COptionsPage::DoDataExchange(CDataExchange* pDX)
{
CAutoPropPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COptionsPage)
DDX_Radio(pDX, IDC_XSL_NONE, m_XSLType);
DDX_Text(pDX, IDC_STYLESHEET, m_sXSLName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COptionsPage, CAutoPropPage)
//{{AFX_MSG_MAP(COptionsPage)
ON_BN_CLICKED(IDC_XSL_NONE, OnXSLSel)
ON_BN_CLICKED(IDC_XSL_SAMENAME, OnXSLSel)
ON_EN_CHANGE(IDC_STYLESHEET, DoModified)
ON_BN_CLICKED(IDC_XSL_FIXED, OnXSLSel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COptionsPage message handlers
BOOL COptionsPage::OnInitDialog()
{
CAutoPropPage::OnInitDialog();
OnXSLSel();
return TRUE;
}
void COptionsPage::DoModified()
{
SetModified();
}
void COptionsPage::OnXSLSel()
{
UpdateData();
DoModified();
GetDlgItem(IDC_STYLESHEET)->EnableWindow(m_XSLType == 2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -