📄 prefdialogcolors.cpp
字号:
#include "stdafx.h"
#include "cedtHeader.h"
#include "PrefDialog.h"
#include "cedtColors.h"
void CPreferenceDialog::InitColorsPage()
{
CString szText( (LPCTSTR)IDS_PREF_GENERAL_COLORS );
m_tabColorsPannel.InsertItem(COLORS_PANNEL_GENERAL, szText, 0);
szText.LoadString( IDS_PREF_KEYWORD_COLORS );
m_tabColorsPannel.InsertItem(COLORS_PANNEL_KEYWORD, szText, 0);
szText.LoadString( IDS_PREF_MISC_COLORS );
m_tabColorsPannel.InsertItem(COLORS_PANNEL_MISC, szText, 0);
m_tabColorsPannel.SetCurSel( m_nActiveColorsPannel );
// following color scheme codes are added in resource file
// m_cmbColorSchemeList.InsertString(0, "default color scheme");
// m_cmbColorSchemeList.InsertString(1, "light gray color scheme");
// m_cmbColorSchemeList.InsertString(2, "simplified color scheme");
// m_cmbColorSchemeList.InsertString(3, "reversed color scheme");
// m_cmbColorSchemeList.InsertString(4, "saved color schemes...");
m_cmbColorSchemeList.SetCurSel( m_nActiveColorScheme );
}
void CPreferenceDialog::SizeColorsPage()
{
INT nPosY;
nPosY = 26; m_tabColorsPannel.MoveWindow(170, nPosY, 360, 200);
nPosY = 66; m_stcBackgroundColor.MoveWindow(180, nPosY, 300, 14);
nPosY += 22; m_btnBackgroundColor.MoveWindow(180, nPosY-3, 140, 18); m_btnActiveLineColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_stcTextColor.MoveWindow(180, nPosY, 300, 14);
nPosY += 22; m_btnWordColor.MoveWindow(180, nPosY-3, 140, 18); m_btnConstantColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_btnCommentColor.MoveWindow(180, nPosY-3, 140, 18); m_btnStringColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_btnDelimiterColor.MoveWindow(180, nPosY-3, 140, 18); m_btnVariableColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY = 66; m_stcKeywordColor.MoveWindow(180, nPosY, 300, 14);
nPosY += 22; m_btnKeyword0Color.MoveWindow(180, nPosY-3, 140, 18); m_btnKeyword1Color.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_btnKeyword2Color.MoveWindow(180, nPosY-3, 140, 18); m_btnKeyword3Color.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_btnKeyword4Color.MoveWindow(180, nPosY-3, 140, 18); m_btnKeyword5Color.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_btnKeyword6Color.MoveWindow(180, nPosY-3, 140, 18); m_btnKeyword7Color.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_btnKeyword8Color.MoveWindow(180, nPosY-3, 140, 18); m_btnKeyword9Color.MoveWindow(360, nPosY-3, 140, 18);
nPosY = 66; m_stcLeftMarginColor.MoveWindow(180, nPosY, 300, 14);
nPosY += 22; m_btnLeftMarginColor.MoveWindow(180, nPosY-3, 140, 18); m_btnLineNumberColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_stcRangeBkgrColor.MoveWindow(180, nPosY, 300, 14);
nPosY += 22; m_btnRange1BkgrColor.MoveWindow(180, nPosY-3, 140, 18); m_btnRange2BkgrColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY += 22; m_stcHighlightedColor.MoveWindow(180, nPosY, 300, 14);
nPosY += 22; m_btnHighlightedColor.MoveWindow(180, nPosY-3, 140, 18); m_btnShadowedColor.MoveWindow(360, nPosY-3, 140, 18);
nPosY = 30 + 200;
nPosY += 10; m_stcColorSchemeBox.MoveWindow(170, nPosY, 360, 80);
nPosY += 10; m_stcLoadColorScheme.MoveWindow(180, nPosY, 240, 14);
nPosY += 20; m_cmbColorSchemeList.MoveWindow(180, nPosY-3, 240, 96); m_btnLoadColorScheme.MoveWindow(430, nPosY-3, 70, 18);
nPosY += 25; m_stcSaveColorScheme.MoveWindow(180, nPosY, 240, 14); m_btnSaveColorScheme.MoveWindow(430, nPosY-3, 70, 18);
}
void CPreferenceDialog::ShowColorsPage()
{
INT nCmdShow = (m_nActiveCategory == PREF_CATEGORY_COLORS) ? SW_SHOW : SW_HIDE;
m_tabColorsPannel.ShowWindow(nCmdShow);
INT nColorsPannel = m_tabColorsPannel.GetCurSel();
nCmdShow = (m_nActiveCategory == PREF_CATEGORY_COLORS && nColorsPannel == 0) ? SW_SHOW : SW_HIDE;
m_stcBackgroundColor.ShowWindow(nCmdShow);
m_btnBackgroundColor.ShowWindow(nCmdShow);
m_btnActiveLineColor.ShowWindow(nCmdShow);
m_stcTextColor.ShowWindow(nCmdShow);
m_btnWordColor.ShowWindow(nCmdShow); m_btnConstantColor.ShowWindow(nCmdShow);
m_btnCommentColor.ShowWindow(nCmdShow); m_btnStringColor.ShowWindow(nCmdShow);
m_btnDelimiterColor.ShowWindow(nCmdShow); m_btnVariableColor.ShowWindow(nCmdShow);
nCmdShow = (m_nActiveCategory == PREF_CATEGORY_COLORS && nColorsPannel == 1) ? SW_SHOW : SW_HIDE;
m_stcKeywordColor.ShowWindow(nCmdShow);
m_btnKeyword0Color.ShowWindow(nCmdShow); m_btnKeyword1Color.ShowWindow(nCmdShow);
m_btnKeyword2Color.ShowWindow(nCmdShow); m_btnKeyword3Color.ShowWindow(nCmdShow);
m_btnKeyword4Color.ShowWindow(nCmdShow); m_btnKeyword5Color.ShowWindow(nCmdShow);
m_btnKeyword6Color.ShowWindow(nCmdShow); m_btnKeyword7Color.ShowWindow(nCmdShow);
m_btnKeyword8Color.ShowWindow(nCmdShow); m_btnKeyword9Color.ShowWindow(nCmdShow);
nCmdShow = (m_nActiveCategory == PREF_CATEGORY_COLORS && nColorsPannel == 2) ? SW_SHOW : SW_HIDE;
m_stcLeftMarginColor.ShowWindow(nCmdShow);
m_btnLeftMarginColor.ShowWindow(nCmdShow); m_btnLineNumberColor.ShowWindow(nCmdShow);
m_stcRangeBkgrColor.ShowWindow(nCmdShow);
m_btnRange1BkgrColor.ShowWindow(nCmdShow); m_btnRange2BkgrColor.ShowWindow(nCmdShow);
m_stcHighlightedColor.ShowWindow(nCmdShow);
m_btnHighlightedColor.ShowWindow(nCmdShow); m_btnShadowedColor.ShowWindow(nCmdShow);
nCmdShow = (m_nActiveCategory == PREF_CATEGORY_COLORS) ? SW_SHOW : SW_HIDE;
m_stcColorSchemeBox.ShowWindow(nCmdShow);
m_stcLoadColorScheme.ShowWindow(nCmdShow);
m_cmbColorSchemeList.ShowWindow(nCmdShow); m_btnLoadColorScheme.ShowWindow(nCmdShow);
m_stcSaveColorScheme.ShowWindow(nCmdShow); m_btnSaveColorScheme.ShowWindow(nCmdShow);
}
BOOL CPreferenceDialog::LoadColorSettings()
{
memcpy((void *)m_crBkgrColor, (const void *)CCedtView::m_crBkgrColor, sizeof(m_crBkgrColor));
memcpy((void *)m_crTextColor, (const void *)CCedtView::m_crTextColor, sizeof(m_crTextColor));
return TRUE;
}
BOOL CPreferenceDialog::SaveColorSettings()
{
memcpy((void *)CCedtView::m_crBkgrColor, (const void *)m_crBkgrColor, sizeof(m_crBkgrColor));
memcpy((void *)CCedtView::m_crTextColor, (const void *)m_crTextColor, sizeof(m_crTextColor));
return TRUE;
}
void CPreferenceDialog::InvalidateColorButtons()
{
m_btnBackgroundColor.Invalidate(); m_btnActiveLineColor.Invalidate();
m_btnWordColor.Invalidate(); m_btnConstantColor.Invalidate();
m_btnCommentColor.Invalidate(); m_btnStringColor.Invalidate();
m_btnDelimiterColor.Invalidate(); m_btnVariableColor.Invalidate();
m_btnKeyword0Color.Invalidate(); m_btnKeyword1Color.Invalidate();
m_btnKeyword2Color.Invalidate(); m_btnKeyword3Color.Invalidate();
m_btnKeyword4Color.Invalidate(); m_btnKeyword5Color.Invalidate();
m_btnKeyword6Color.Invalidate(); m_btnKeyword7Color.Invalidate();
m_btnKeyword8Color.Invalidate(); m_btnKeyword9Color.Invalidate();
m_btnLeftMarginColor.Invalidate(); m_btnLineNumberColor.Invalidate();
m_btnHighlightedColor.Invalidate(); m_btnShadowedColor.Invalidate();
m_btnRange1BkgrColor.Invalidate(); m_btnRange2BkgrColor.Invalidate();
}
BOOL CPreferenceDialog::LoadSystemColorScheme(INT nScheme)
{
switch( nScheme ) {
case 0: // default color scheme
m_crBkgrColor[0x00] = CR_DEFAULT_BACKGROUND;
m_crBkgrColor[0x01] = CR_DEFAULT_LEFTMARGIN;
m_crBkgrColor[0x02] = CR_DEFAULT_CURRENTLINE;
m_crTextColor[WT_LINEFEED] = CR_DEFAULT_LINENUMBER;
m_crTextColor[WT_CONSTANT] = CR_DEFAULT_CONSTANT;
m_crTextColor[WT_QUOTATION1] = CR_DEFAULT_STRING;
m_crTextColor[WT_LINECOMMENT] = CR_DEFAULT_COMMENT;
m_crTextColor[WT_VARIABLE] = CR_DEFAULT_VARIABLE;
m_crTextColor[WT_WORD] = CR_DEFAULT_WORD;
m_crTextColor[WT_WRONGWORD] = CR_DEFAULT_WORD;
m_crTextColor[WT_DBCHAR] = CR_DEFAULT_WORD;
m_crTextColor[WT_GRAPH] = CR_DEFAULT_WORD;
m_crTextColor[WT_RETURN] = CR_DEFAULT_DELIMITER;
m_crTextColor[WT_TAB] = CR_DEFAULT_DELIMITER;
m_crTextColor[WT_SPACE] = CR_DEFAULT_DELIMITER;
m_crTextColor[WT_DELIMITER] = CR_DEFAULT_DELIMITER;
m_crTextColor[WT_KEYWORD0] = CR_DEFAULT_KEYWORD0;
m_crTextColor[WT_KEYWORD1] = CR_DEFAULT_KEYWORD1;
m_crTextColor[WT_KEYWORD2] = CR_DEFAULT_KEYWORD2;
m_crTextColor[WT_KEYWORD3] = CR_DEFAULT_KEYWORD3;
m_crTextColor[WT_KEYWORD4] = CR_DEFAULT_KEYWORD4;
m_crTextColor[WT_KEYWORD5] = CR_DEFAULT_KEYWORD5;
m_crTextColor[WT_KEYWORD6] = CR_DEFAULT_KEYWORD6;
m_crTextColor[WT_KEYWORD7] = CR_DEFAULT_KEYWORD7;
m_crTextColor[WT_KEYWORD8] = CR_DEFAULT_KEYWORD8;
m_crTextColor[WT_KEYWORD9] = CR_DEFAULT_KEYWORD9;
m_crTextColor[WT_HIGHLIGHTON] = CR_DEFAULT_HIGHLIGHTED;
m_crTextColor[WT_SHADOWON] = CR_DEFAULT_SHADOWED;
m_crBkgrColor[0x03] = CR_DEFAULT_RANGE1BKGR;
m_crBkgrColor[0x04] = CR_DEFAULT_RANGE2BKGR;
break;
case 1: // light gray color scheme
m_crBkgrColor[0x00] = CR_LIGHTGRAY_BACKGROUND;
m_crBkgrColor[0x01] = CR_LIGHTGRAY_LEFTMARGIN;
m_crBkgrColor[0x02] = CR_LIGHTGRAY_CURRENTLINE;
m_crTextColor[WT_LINEFEED] = CR_LIGHTGRAY_LINENUMBER;
m_crTextColor[WT_CONSTANT] = CR_LIGHTGRAY_CONSTANT;
m_crTextColor[WT_QUOTATION1] = CR_LIGHTGRAY_STRING;
m_crTextColor[WT_LINECOMMENT] = CR_LIGHTGRAY_COMMENT;
m_crTextColor[WT_VARIABLE] = CR_LIGHTGRAY_VARIABLE;
m_crTextColor[WT_WORD] = CR_LIGHTGRAY_WORD;
m_crTextColor[WT_WRONGWORD] = CR_LIGHTGRAY_WORD;
m_crTextColor[WT_DBCHAR] = CR_LIGHTGRAY_WORD;
m_crTextColor[WT_GRAPH] = CR_LIGHTGRAY_WORD;
m_crTextColor[WT_RETURN] = CR_LIGHTGRAY_DELIMITER;
m_crTextColor[WT_TAB] = CR_LIGHTGRAY_DELIMITER;
m_crTextColor[WT_SPACE] = CR_LIGHTGRAY_DELIMITER;
m_crTextColor[WT_DELIMITER] = CR_LIGHTGRAY_DELIMITER;
m_crTextColor[WT_KEYWORD0] = CR_LIGHTGRAY_KEYWORD0;
m_crTextColor[WT_KEYWORD1] = CR_LIGHTGRAY_KEYWORD1;
m_crTextColor[WT_KEYWORD2] = CR_LIGHTGRAY_KEYWORD2;
m_crTextColor[WT_KEYWORD3] = CR_LIGHTGRAY_KEYWORD3;
m_crTextColor[WT_KEYWORD4] = CR_LIGHTGRAY_KEYWORD4;
m_crTextColor[WT_KEYWORD5] = CR_LIGHTGRAY_KEYWORD5;
m_crTextColor[WT_KEYWORD6] = CR_LIGHTGRAY_KEYWORD6;
m_crTextColor[WT_KEYWORD7] = CR_LIGHTGRAY_KEYWORD7;
m_crTextColor[WT_KEYWORD8] = CR_LIGHTGRAY_KEYWORD8;
m_crTextColor[WT_KEYWORD9] = CR_LIGHTGRAY_KEYWORD9;
m_crTextColor[WT_HIGHLIGHTON] = CR_LIGHTGRAY_HIGHLIGHTED;
m_crTextColor[WT_SHADOWON] = CR_LIGHTGRAY_SHADOWED;
m_crBkgrColor[0x03] = CR_LIGHTGRAY_RANGE1BKGR;
m_crBkgrColor[0x04] = CR_LIGHTGRAY_RANGE2BKGR;
break;
case 2: // simplified color scheme
m_crBkgrColor[0x00] = CR_SIMPLIFIED_BACKGROUND;
m_crBkgrColor[0x01] = CR_SIMPLIFIED_LEFTMARGIN;
m_crBkgrColor[0x02] = CR_SIMPLIFIED_CURRENTLINE;
m_crTextColor[WT_LINEFEED] = CR_SIMPLIFIED_LINENUMBER;
m_crTextColor[WT_CONSTANT] = CR_SIMPLIFIED_CONSTANT;
m_crTextColor[WT_QUOTATION1] = CR_SIMPLIFIED_STRING;
m_crTextColor[WT_LINECOMMENT] = CR_SIMPLIFIED_COMMENT;
m_crTextColor[WT_VARIABLE] = CR_SIMPLIFIED_VARIABLE;
m_crTextColor[WT_WORD] = CR_SIMPLIFIED_WORD;
m_crTextColor[WT_WRONGWORD] = CR_SIMPLIFIED_WORD;
m_crTextColor[WT_DBCHAR] = CR_SIMPLIFIED_WORD;
m_crTextColor[WT_GRAPH] = CR_SIMPLIFIED_WORD;
m_crTextColor[WT_RETURN] = CR_SIMPLIFIED_DELIMITER;
m_crTextColor[WT_TAB] = CR_SIMPLIFIED_DELIMITER;
m_crTextColor[WT_SPACE] = CR_SIMPLIFIED_DELIMITER;
m_crTextColor[WT_DELIMITER] = CR_SIMPLIFIED_DELIMITER;
m_crTextColor[WT_KEYWORD0] = CR_SIMPLIFIED_KEYWORD0;
m_crTextColor[WT_KEYWORD1] = CR_SIMPLIFIED_KEYWORD1;
m_crTextColor[WT_KEYWORD2] = CR_SIMPLIFIED_KEYWORD2;
m_crTextColor[WT_KEYWORD3] = CR_SIMPLIFIED_KEYWORD3;
m_crTextColor[WT_KEYWORD4] = CR_SIMPLIFIED_KEYWORD4;
m_crTextColor[WT_KEYWORD5] = CR_SIMPLIFIED_KEYWORD5;
m_crTextColor[WT_KEYWORD6] = CR_SIMPLIFIED_KEYWORD6;
m_crTextColor[WT_KEYWORD7] = CR_SIMPLIFIED_KEYWORD7;
m_crTextColor[WT_KEYWORD8] = CR_SIMPLIFIED_KEYWORD8;
m_crTextColor[WT_KEYWORD9] = CR_SIMPLIFIED_KEYWORD9;
m_crTextColor[WT_HIGHLIGHTON] = CR_SIMPLIFIED_HIGHLIGHTED;
m_crTextColor[WT_SHADOWON] = CR_SIMPLIFIED_SHADOWED;
m_crBkgrColor[0x03] = CR_SIMPLIFIED_RANGE1BKGR;
m_crBkgrColor[0x04] = CR_SIMPLIFIED_RANGE2BKGR;
break;
default: // reversed color scheme
m_crBkgrColor[0x00] = CR_REVERSED_BACKGROUND;
m_crBkgrColor[0x01] = CR_REVERSED_LEFTMARGIN;
m_crBkgrColor[0x02] = CR_REVERSED_CURRENTLINE;
m_crTextColor[WT_LINEFEED] = CR_REVERSED_LINENUMBER;
m_crTextColor[WT_CONSTANT] = CR_REVERSED_CONSTANT;
m_crTextColor[WT_QUOTATION1] = CR_REVERSED_STRING;
m_crTextColor[WT_LINECOMMENT] = CR_REVERSED_COMMENT;
m_crTextColor[WT_VARIABLE] = CR_REVERSED_VARIABLE;
m_crTextColor[WT_WORD] = CR_REVERSED_WORD;
m_crTextColor[WT_WRONGWORD] = CR_REVERSED_WORD;
m_crTextColor[WT_DBCHAR] = CR_REVERSED_WORD;
m_crTextColor[WT_GRAPH] = CR_REVERSED_WORD;
m_crTextColor[WT_RETURN] = CR_REVERSED_DELIMITER;
m_crTextColor[WT_TAB] = CR_REVERSED_DELIMITER;
m_crTextColor[WT_SPACE] = CR_REVERSED_DELIMITER;
m_crTextColor[WT_DELIMITER] = CR_REVERSED_DELIMITER;
m_crTextColor[WT_KEYWORD0] = CR_REVERSED_KEYWORD0;
m_crTextColor[WT_KEYWORD1] = CR_REVERSED_KEYWORD1;
m_crTextColor[WT_KEYWORD2] = CR_REVERSED_KEYWORD2;
m_crTextColor[WT_KEYWORD3] = CR_REVERSED_KEYWORD3;
m_crTextColor[WT_KEYWORD4] = CR_REVERSED_KEYWORD4;
m_crTextColor[WT_KEYWORD5] = CR_REVERSED_KEYWORD5;
m_crTextColor[WT_KEYWORD6] = CR_REVERSED_KEYWORD6;
m_crTextColor[WT_KEYWORD7] = CR_REVERSED_KEYWORD7;
m_crTextColor[WT_KEYWORD8] = CR_REVERSED_KEYWORD8;
m_crTextColor[WT_KEYWORD9] = CR_REVERSED_KEYWORD9;
m_crTextColor[WT_HIGHLIGHTON] = CR_REVERSED_HIGHLIGHTED;
m_crTextColor[WT_SHADOWON] = CR_REVERSED_SHADOWED;
m_crBkgrColor[0x03] = CR_REVERSED_RANGE1BKGR;
m_crBkgrColor[0x04] = CR_REVERSED_RANGE2BKGR;
break;
}
return TRUE;
}
BOOL CPreferenceDialog::LoadColorScheme(LPCTSTR lpszPathName)
{
INT nLength; TCHAR szBuffer[2048];
ifstream fin( lpszPathName, ios::in | ios::nocreate | ios::binary );
if( ! fin.is_open() ) return FALSE;
nLength = strlen(STRING_COLORSETTINGSVER); fin.read((char *)szBuffer, nLength); szBuffer[nLength] = '\0';
if( strcmp(szBuffer, STRING_COLORSETTINGSVER) ) { fin.close(); return FALSE; }
fin.read((char *)m_crBkgrColor, sizeof(m_crBkgrColor));
if( ! fin.good() ) { fin.close(); return FALSE; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -