📄 userdefinedialog.cpp
字号:
case IDC_KEYWORD4_EDIT : index = 8; break;
default : index = -1;
}
if (index != -1)
::GetDlgItemText(_hSelf, id, _pUserLang->_keywordLists[index], max_char);
}
int KeyWordsStyleDialog::getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const
{
for (int i = 0 ; i < _nbGroup ; i++)
{
if (hWnd == _pFgColour[i]->getHSelf())
{
*ppCP = _pFgColour[i];
isFG = true;
return i+3;
}
if (hWnd == _pBgColour[i]->getHSelf())
{
*ppCP = _pBgColour[i];
isFG = false;
return i+3;
}
}
return -1;
}
int KeyWordsStyleDialog::getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const
{
switch (ctrlID)
{
case IDC_KEYWORD1_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_WORD1_INDEX;
case IDC_KEYWORD1_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_WORD1_INDEX;
case IDC_KEYWORD1_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_WORD1_INDEX;
case IDC_KEYWORD2_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_WORD2_INDEX;
case IDC_KEYWORD2_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_WORD2_INDEX;
case IDC_KEYWORD2_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_WORD2_INDEX;
case IDC_KEYWORD3_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_WORD3_INDEX;
case IDC_KEYWORD3_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_WORD3_INDEX;
case IDC_KEYWORD3_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_WORD3_INDEX;
case IDC_KEYWORD4_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_WORD4_INDEX;
case IDC_KEYWORD4_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_WORD4_INDEX;
case IDC_KEYWORD4_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_WORD4_INDEX;
default :
return -1;
}
}
void KeyWordsStyleDialog::updateDlg()
{
::SendDlgItemMessage(_hSelf, IDC_KEYWORD1_EDIT, WM_SETTEXT, 0, (LPARAM)(_pUserLang->_keywordLists[KWL_KW1_INDEX]));
::SendDlgItemMessage(_hSelf, IDC_KEYWORD2_EDIT, WM_SETTEXT, 0, (LPARAM)(_pUserLang->_keywordLists[KWL_KW2_INDEX]));
::SendDlgItemMessage(_hSelf, IDC_KEYWORD3_EDIT, WM_SETTEXT, 0, (LPARAM)(_pUserLang->_keywordLists[KWL_KW3_INDEX]));
::SendDlgItemMessage(_hSelf, IDC_KEYWORD4_EDIT, WM_SETTEXT, 0, (LPARAM)(_pUserLang->_keywordLists[KWL_KW4_INDEX]));
Style & w1Style = _pUserLang->_styleArray.getStyler(STYLE_WORD1_INDEX);
styleUpdate(w1Style, _pFgColour[0], _pBgColour[0], IDC_KEYWORD1_FONT_COMBO, IDC_KEYWORD1_FONTSIZE_COMBO,
IDC_KEYWORD1_BOLD_CHECK, IDC_KEYWORD1_ITALIC_CHECK, IDC_KEYWORD1_UNDERLINE_CHECK);
Style & w2Style = _pUserLang->_styleArray.getStyler(STYLE_WORD2_INDEX);
styleUpdate(w2Style, _pFgColour[1], _pBgColour[1], IDC_KEYWORD2_FONT_COMBO, IDC_KEYWORD2_FONTSIZE_COMBO,
IDC_KEYWORD2_BOLD_CHECK, IDC_KEYWORD2_ITALIC_CHECK, IDC_KEYWORD2_UNDERLINE_CHECK);
Style & w3Style = _pUserLang->_styleArray.getStyler(STYLE_WORD3_INDEX);
styleUpdate(w3Style, _pFgColour[2], _pBgColour[2], IDC_KEYWORD3_FONT_COMBO, IDC_KEYWORD3_FONTSIZE_COMBO,
IDC_KEYWORD3_BOLD_CHECK, IDC_KEYWORD3_BOLD_CHECK, IDC_KEYWORD3_UNDERLINE_CHECK);
Style & w4Style = _pUserLang->_styleArray.getStyler(STYLE_WORD4_INDEX);
styleUpdate(w4Style, _pFgColour[3], _pBgColour[3], IDC_KEYWORD4_FONT_COMBO, IDC_KEYWORD4_FONTSIZE_COMBO,
IDC_KEYWORD4_BOLD_CHECK, IDC_KEYWORD4_ITALIC_CHECK, IDC_KEYWORD4_UNDERLINE_CHECK);
::SendDlgItemMessage(_hSelf, IDC_KEYWORD1_PREFIX_CHECK, BM_SETCHECK, _pUserLang->_isPrefix[0], 0);
::SendDlgItemMessage(_hSelf, IDC_KEYWORD2_PREFIX_CHECK, BM_SETCHECK, _pUserLang->_isPrefix[1], 0);
::SendDlgItemMessage(_hSelf, IDC_KEYWORD3_PREFIX_CHECK, BM_SETCHECK, _pUserLang->_isPrefix[2], 0);
::SendDlgItemMessage(_hSelf, IDC_KEYWORD4_PREFIX_CHECK, BM_SETCHECK, _pUserLang->_isPrefix[3], 0);
}
int fgStatic3[] = {IDC_COMMENT_FG_STATIC, IDC_COMMENTLINE_FG_STATIC, IDC_NUMBER_FG_STATIC};
int bgStatic3[] = {IDC_COMMENT_BG_STATIC, IDC_COMMENTLINE_BG_STATIC, IDC_NUMBER_BG_STATIC};
int fontSizeCombo3[] = {IDC_COMMENT_FONTSIZE_COMBO, IDC_COMMENTLINE_FONTSIZE_COMBO, IDC_NUMBER_FONTSIZE_COMBO};
int fontNameCombo3[] = {IDC_COMMENT_FONT_COMBO, IDC_COMMENTLINE_FONT_COMBO, IDC_NUMBER_FONT_COMBO};
CommentStyleDialog::CommentStyleDialog() : SharedParametersDialog(3)
{
memcpy(_fgStatic, fgStatic3, sizeof(fgStatic3));
memcpy(_bgStatic, bgStatic3, sizeof(bgStatic3));
memcpy(_fontSizeCombo, fontSizeCombo3, sizeof(fontSizeCombo3));
memcpy(_fontNameCombo, fontNameCombo3, sizeof(fontNameCombo3));
}
BOOL CALLBACK CommentStyleDialog::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Message)
{
case WM_COMMAND :
{
switch (wParam)
{
case IDC_COMMENTLINESYMBOL_CHECK :
return setPropertyByCheck(_hSelf, wParam, _pUserLang->_isCommentLineSymbol);;
case IDC_COMMENTSYMBOL_CHECK :
return setPropertyByCheck(_hSelf, wParam, _pUserLang->_isCommentSymbol);;
}
}
default :
return SharedParametersDialog::run_dlgProc(Message, wParam, lParam);
}
}
void CommentStyleDialog::setKeywords2List(int id)
{
int i;
switch (id)
{
case IDC_COMMENTOPEN_EDIT :
case IDC_COMMENTCLOSE_EDIT :
case IDC_COMMENTLINE_EDIT :
i = 4;
break;
default : i = -1;
}
if (i != -1)
{
char commentOpen[max_char];
char commentClose[max_char];
char commentLine[max_char];
char newList[max_char] = "";
::GetDlgItemText(_hSelf, IDC_COMMENTOPEN_EDIT, commentOpen, max_char);
::GetDlgItemText(_hSelf, IDC_COMMENTCLOSE_EDIT, commentClose, max_char);
::GetDlgItemText(_hSelf, IDC_COMMENTLINE_EDIT, commentLine, max_char);
convertTo(newList, commentOpen, '1');
convertTo(newList, commentClose, '2');
convertTo(newList, commentLine, '0');
strcpy(_pUserLang->_keywordLists[i], newList);
}
}
int CommentStyleDialog::getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const
{
for (int i = 0 ; i < _nbGroup ; i++)
{
if (hWnd == _pFgColour[i]->getHSelf())
{
*ppCP = _pFgColour[i];
isFG = true;
return i+7;
}
if (hWnd == _pBgColour[i]->getHSelf())
{
*ppCP = _pBgColour[i];
isFG = false;
return i+7;
}
}
return -1;
}
int CommentStyleDialog::getGroupeIndexFromCheck(int ctrlID, int & fontStyleMask) const
{
switch (ctrlID)
{
case IDC_COMMENT_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_COMMENT_INDEX;
case IDC_COMMENT_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_COMMENT_INDEX;
case IDC_COMMENT_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_COMMENT_INDEX;
case IDC_COMMENTLINE_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_COMMENTLINE_INDEX;
case IDC_COMMENTLINE_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_COMMENTLINE_INDEX;
case IDC_COMMENTLINE_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_COMMENTLINE_INDEX;
case IDC_NUMBER_BOLD_CHECK :
fontStyleMask = FONTSTYLE_BOLD;
return STYLE_NUMBER_INDEX;
case IDC_NUMBER_ITALIC_CHECK :
fontStyleMask = FONTSTYLE_ITALIC;
return STYLE_NUMBER_INDEX;
case IDC_NUMBER_UNDERLINE_CHECK :
fontStyleMask = FONTSTYLE_UNDERLINE;
return STYLE_NUMBER_INDEX;
default :
return -1;
}
}
void CommentStyleDialog::convertTo(char *dest, const char *toConvert, char prefix) const
{
int index = strlen(dest);
dest[index++] = ' ';
dest[index++] = prefix;
for (int i = 0 ; i < int(strlen(toConvert)) ; i++)
{
if (toConvert[i] == ' ')
{
if (toConvert[i+1] != ' ')
{
dest[index++] = ' ';
dest[index++] = prefix;
}
}
else
{
dest[index++] = toConvert[i];
}
}
dest[index] = '\0';
}
void CommentStyleDialog::retrieve(char *dest, const char *toRetrieve, char prefix) const
{
int j = 0;
bool begin2Copy = false;
for (int i = 0 ; i < int(strlen(toRetrieve)) ; i++)
{
if (((i == 0) || toRetrieve[i-1] == ' ') && (toRetrieve[i] == prefix))
{
begin2Copy = true;
continue;
}
else if (((toRetrieve[i] == ' ') && begin2Copy == true))
{
dest[j++] = toRetrieve[i];
begin2Copy = false;
}
if (begin2Copy)
dest[j++] = toRetrieve[i];
}
dest[j++] = '\0';
}
void CommentStyleDialog::updateDlg()
{
char commentOpen[256] = "";
char commentClose[256] = "";
char commentLine[256] = "";
retrieve(commentOpen, _pUserLang->_keywordLists[KWL_COMMENT_INDEX], '1');
retrieve(commentClose, _pUserLang->_keywordLists[KWL_COMMENT_INDEX], '2');
retrieve(commentLine, _pUserLang->_keywordLists[KWL_COMMENT_INDEX], '0');
::SendDlgItemMessage(_hSelf, IDC_COMMENTOPEN_EDIT, WM_SETTEXT, 0, (LPARAM)commentOpen);
::SendDlgItemMessage(_hSelf, IDC_COMMENTCLOSE_EDIT, WM_SETTEXT, 0, (LPARAM)commentClose);
::SendDlgItemMessage(_hSelf, IDC_COMMENTLINE_EDIT, WM_SETTEXT, 0, (LPARAM)commentLine);
Style & commentStyle = _pUserLang->_styleArray.getStyler(STYLE_COMMENT_INDEX);
styleUpdate(commentStyle, _pFgColour[0], _pBgColour[0], IDC_COMMENT_FONT_COMBO, IDC_COMMENT_FONTSIZE_COMBO,
IDC_COMMENT_BOLD_CHECK, IDC_COMMENT_ITALIC_CHECK, IDC_COMMENT_UNDERLINE_CHECK);
Style & commentLineStyle = _pUserLang->_styleArray.getStyler(STYLE_COMMENTLINE_INDEX);
styleUpdate(commentLineStyle, _pFgColour[1], _pBgColour[1], IDC_COMMENTLINE_FONT_COMBO, IDC_COMMENTLINE_FONTSIZE_COMBO,
IDC_COMMENTLINE_BOLD_CHECK, IDC_COMMENTLINE_ITALIC_CHECK, IDC_COMMENTLINE_UNDERLINE_CHECK);
Style & numberStyle = _pUserLang->_styleArray.getStyler(STYLE_NUMBER_INDEX);
styleUpdate(numberStyle, _pFgColour[2], _pBgColour[2], IDC_NUMBER_FONT_COMBO, IDC_NUMBER_FONTSIZE_COMBO,
IDC_NUMBER_BOLD_CHECK, IDC_NUMBER_ITALIC_CHECK, IDC_NUMBER_UNDERLINE_CHECK);
::SendDlgItemMessage(_hSelf, IDC_COMMENTLINESYMBOL_CHECK, BM_SETCHECK, _pUserLang->_isCommentLineSymbol, 0);
::SendDlgItemMessage(_hSelf, IDC_COMMENTSYMBOL_CHECK, BM_SETCHECK, _pUserLang->_isCommentSymbol, 0);
}
char symbolesArray[] = "+-*/.?!:;,%^$&\"'(_)=}]@\\`|[{#~<>";
const bool SymbolsStyleDialog::ADD = true;
const bool SymbolsStyleDialog::REMOVE = false;
int fgStatic4[] = {IDC_SYMBOL_FG_STATIC, IDC_SYMBOL_FG2_STATIC, IDC_SYMBOL_FG3_STATIC};
int bgStatic4[] = {IDC_SYMBOL_BG_STATIC, IDC_SYMBOL_BG2_STATIC, IDC_SYMBOL_BG3_STATIC};
int fontSizeCombo4[] = {IDC_SYMBOL_FONTSIZE_COMBO, IDC_SYMBOL_FONTSIZE2_COMBO, IDC_SYMBOL_FONTSIZE3_COMBO};
int fontNameCombo4[] = {IDC_SYMBOL_FONT_COMBO, IDC_SYMBOL_FONT2_COMBO, IDC_SYMBOL_FONT3_COMBO};
// 2 static const char * to have the compatibility with the old xml
const char *SymbolsStyleDialog::_delimTag1 = "DELIMINER1";
const char *SymbolsStyleDialog::_delimTag2 = "DELIMINER2";
SymbolsStyleDialog::SymbolsStyleDialog() : SharedParametersDialog(3)
{
memcpy(_fgStatic, fgStatic4, sizeof(fgStatic4));
memcpy(_bgStatic, bgStatic4, sizeof(bgStatic4));
memcpy(_fontSizeCombo, fontSizeCombo4, sizeof(fontSizeCombo4));
memcpy(_fontNameCombo, fontNameCombo4, sizeof(fontNameCombo4));
}
int SymbolsStyleDialog::getStylerIndexFromCP(HWND hWnd, bool & isFG, ColourPicker **ppCP) const
{
for (int i = 0 ; i < _nbGroup ; i++)
{
if (hWnd == _pFgColour[i]->getHSelf())
{
*ppCP = _pFgColour[i];
isFG = true;
return i+10;
}
if (hWnd == _pBgColour[i]->getHSelf())
{
*ppCP = _pBgColour[i];
isFG = false;
return i+10;
}
}
return -1;
}
void SymbolsStyleDialog::symbolAction(bool action)
{
int id2Add, id2Remove;
int idButton2Disable, idButton2Enable;
if (action == ADD)
{
id2Add = IDC_ACTIVATED_SYMBOL_LIST;
id2Remove = IDC_AVAILABLE_SYMBOLS_LIST;
idButton2Enable = IDC_REMOVE_BUTTON;
idButton2Disable = IDC_ADD_BUTTON;
}
else
{
id2Add = IDC_AVAILABLE_SYMBOLS_LIST;
id2Remove = IDC_ACTIVATED_SYMBOL_LIST;
idButton2Enable = IDC_ADD_BUTTON;
idButton2Disable = IDC_REMOVE_BUTTON;
}
int i = ::SendDlgItemMessage(_hSelf, id2Remove, LB_GETCURSEL, 0, 0);
char s[2];
::SendDlgItemMessage(_hSelf, id2Remove, LB_GETTEXT, i, (LPARAM)s);
::SendDlgItemMessage(_hSelf, id2Add, LB_ADDSTRING, 0, (LPARAM)s);
::SendDlgItemMessage(_hSelf, id2Remove, LB_DELETESTRING, i, 0);
int count = ::SendDlgItemMessage(_hSelf, id2Remove, LB_GETCOUNT, 0, 0);
if (i == count)
i -= 1;
::SendDlgItemMessage(_hSelf, id2Remove, LB_SETCURSEL, i, 0);
count = ::SendDlgItemMessage(_hSelf, id2Remove, LB_GETCOUNT, 0, 0);
// If there's no symbol, we activate another side
if (!count)
{
::SendDlgItemMessage(_hSelf, id2Add, LB_SETCURSEL, 0, 0);
::EnableWindow(::GetDlgItem(_hSelf, idButton2Enable), TRUE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -