⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdefinedialog.cpp

📁 Notepad++ 源代码,功能强大的编辑软件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		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 + -