📄 prefdialog.cpp
字号:
RECT rect; GetWindowRect( & rect );
MoveWindow( rect.left, rect.top, 546, 440 );
// categories & buttons
INT nPosY;
nPosY = 8; m_stcCategories.MoveWindow(8, nPosY, 150, 14);
nPosY += 18; m_treCategories.MoveWindow(8, nPosY, 150, 330);
nPosY = 360; m_ctlSeparator.MoveWindow(8, nPosY, 530, 14);
nPosY += 16; m_btnOK.MoveWindow(240, nPosY, 90, 22);
nPosY += 0; m_btnCancel.MoveWindow(340, nPosY, 90, 22);
nPosY += 0; m_btnApply.MoveWindow(440, nPosY, 90, 22);
// resize each page
SizeGeneralPage(); SizeVisualPage(); SizeFontsPage();
SizeColorsPage(); SizePrintPage();
SizeFilePage(); SizeAssocPage(); SizeBackupPage();
SizeSyntaxPage(); SizeFiltersPage();
SizeToolsPage(); SizeCommandsPage(); SizeMacrosPage();
}
void CPreferenceDialog::ShowProperPrefPages()
{
ShowGeneralPage(); ShowVisualPage(); ShowFontsPage();
ShowColorsPage(); ShowPrintPage();
ShowFilePage(); ShowAssocPage(); ShowBackupPage();
ShowSyntaxPage(); ShowFiltersPage();
ShowToolsPage(); ShowCommandsPage(); ShowMacrosPage();
}
BOOL CPreferenceDialog::LoadAllPrefSettings()
{
LoadGeneralSettings(); LoadVisualSettings(); LoadFontSettings();
LoadColorSettings(); LoadPrintSettings();
LoadFileSettings(); /* LoadAssocSettings(); */ LoadBackupSettings();
LoadSyntaxTypes(); LoadFileFilters();
LoadToolsSettings(); LoadUserCommands(); LoadMacroBuffers();
return TRUE;
}
BOOL CPreferenceDialog::ApplyAllPrefSettings()
{
SaveGeneralSettings(); SaveVisualSettings(); SaveFontSettings();
SaveColorSettings(); SavePrintSettings();
SaveFileSettings(); SaveAssocSettings(); SaveBackupSettings();
SaveSyntaxTypes(); SaveFileFilters();
SaveToolsSettings(); SaveUserCommands(); SaveMacroBuffers();
CMainFrame * pFrame = (CMainFrame *)AfxGetMainWnd();
pFrame->ApplyOutputWindowFont(TRUE);
CCedtApp * pApp = (CCedtApp *)AfxGetApp();
pApp->ApplyFileFilterToFileWindow();
pApp->SaveMultiInstancesFlag(REGKEY_ALLOW_MULTI);
pApp->ApplyPreferencesToAllViews(); // CCedtApp::SaveUserConfiguration();
CCedtApp::SaveColorSettings();
CCedtApp::SaveUserCommands(CCedtApp::m_szInstallDirectory + "\\cedt.cmd");
CCedtApp::SaveMacroBuffers(CCedtApp::m_szInstallDirectory + "\\cedt.mac");
return TRUE;
}
HTREEITEM CPreferenceDialog::InsertCategoryItem(UINT nResourceID, HTREEITEM hParent, UINT nCategory)
{
CString szText; szText.LoadString( nResourceID );
HTREEITEM hItem = m_treCategories.InsertItem( szText, hParent );
BOOL bDataSet = m_treCategories.SetItemData( hItem, nCategory );
m_treCategories.Expand( hParent, TVE_EXPAND );
return hItem;
}
/////////////////////////////////////////////////////////////////////////////
// CPreferenceDialog message handlers
BOOL CPreferenceDialog::OnInitDialog()
{
CDialog::OnInitDialog();
InitAllPrefPages();
SizeAllPrefPages();
LoadAllPrefSettings();
switch( m_nActiveCategory ) {
case PREF_CATEGORY_GENERAL: m_treCategories.SelectItem(m_hItemGeneral); break;
case PREF_CATEGORY_VISUAL: m_treCategories.SelectItem(m_hItemVisual); break;
case PREF_CATEGORY_FONTS: m_treCategories.SelectItem(m_hItemFonts); break;
case PREF_CATEGORY_COLORS: m_treCategories.SelectItem(m_hItemColors); break;
case PREF_CATEGORY_PRINT: m_treCategories.SelectItem(m_hItemPrint); break;
case PREF_CATEGORY_FILE: m_treCategories.SelectItem(m_hItemFile); break;
case PREF_CATEGORY_ASSOC: m_treCategories.SelectItem(m_hItemAssoc); break;
case PREF_CATEGORY_BACKUP: m_treCategories.SelectItem(m_hItemBackup); break;
case PREF_CATEGORY_SYNTAX: m_treCategories.SelectItem(m_hItemSyntax); break;
case PREF_CATEGORY_FILTERS: m_treCategories.SelectItem(m_hItemFilters); break;
case PREF_CATEGORY_TOOLS: m_treCategories.SelectItem(m_hItemTools); break;
case PREF_CATEGORY_COMMANDS: m_treCategories.SelectItem(m_hItemCommands); break;
case PREF_CATEGORY_MACROS: m_treCategories.SelectItem(m_hItemMacros); break;
}
CenterWindow();
// ensure preference window appear center of the editor
return TRUE;
}
void CPreferenceDialog::OnApply()
{
ApplyAllPrefSettings();
}
void CPreferenceDialog::OnOK()
{
ApplyAllPrefSettings();
CDialog::OnOK();
}
void CPreferenceDialog::OnSelchangedCategories(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW * pNMTreeView = (NM_TREEVIEW *)pNMHDR;
m_nActiveCategory = pNMTreeView->itemNew.lParam;
if( m_nActiveCategory == PREF_CATEGORY_ASSOC ) LoadAssocSettings();
ShowProperPrefPages();
*pResult = 0;
}
BOOL CPreferenceDialog::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_SYSKEYUP || pMsg->message == WM_KEYUP ) {
CWnd * pWnd = GetFocus();
if( pWnd == (CWnd *)(& m_hkyCommandHotKey) ) OnChangeCommandHotKey();
else if( pWnd == (CWnd *)(& m_hkyMacroHotKey) ) OnChangeMacroHotKey();
}
return CDialog::PreTranslateMessage(pMsg);
}
HBRUSH CPreferenceDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
static CBrush brush;
if( pWnd == & m_btnBackgroundColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_WORD] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnActiveLineColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x02] );
pDC->SetTextColor( m_crTextColor[WT_WORD] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnWordColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_WORD] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnConstantColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_CONSTANT] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnCommentColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_LINECOMMENT] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnStringColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_QUOTATION1] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnDelimiterColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_DELIMITER] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnVariableColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_VARIABLE] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword0Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD0] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword1Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD1] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword2Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD2] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword3Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD3] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword4Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD4] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword5Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD5] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword6Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD6] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword7Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD7] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword8Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD8] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnKeyword9Color ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_KEYWORD9] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnLeftMarginColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x01] );
pDC->SetTextColor( m_crTextColor[WT_LINEFEED] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnLineNumberColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x01] );
pDC->SetTextColor( m_crTextColor[WT_LINEFEED] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnRange1BkgrColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x03] );
pDC->SetTextColor( m_crTextColor[WT_WORD] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnRange2BkgrColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x04] );
pDC->SetTextColor( m_crTextColor[WT_WORD] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnHighlightedColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_HIGHLIGHTON] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else if( pWnd == & m_btnShadowedColor ) {
brush.DeleteObject(); brush.CreateSolidBrush( m_crBkgrColor[0x00] );
pDC->SetTextColor( m_crTextColor[WT_SHADOWON] ); pDC->SetBkMode( TRANSPARENT );
return brush;
} else return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -