mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ add Book Mark style (Color Background and Alpha) to customize schemes...
+ replace old bookmark pixmap (visible margin) by Scintilla's BOOKMARK marker style
This commit is contained in:
parent
6b257f17a6
commit
0f4e6bdda8
12
src/Edit.c
12
src/Edit.c
@ -160,9 +160,9 @@ HWND EditCreate(HWND hwndParent)
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELECTIONTYPING,FALSE,0);
|
||||
SendMessage(hwnd,SCI_SETADDITIONALCARETSBLINK,FALSE,0);
|
||||
SendMessage(hwnd,SCI_SETADDITIONALCARETSVISIBLE,FALSE,0);
|
||||
SendMessage(hwnd, SCI_SETMOUSEDOWNCAPTURES, FALSE, 0);
|
||||
SendMessage(hwnd, SCI_SETMOUSEWHEELCAPTURES,FALSE, 0);
|
||||
SendMessage(hwnd, SCI_SETVIRTUALSPACEOPTIONS, (bDenyVirtualSpaceAccess ? SCVS_NONE : SCVS_RECTANGULARSELECTION), 0);
|
||||
SendMessage(hwnd,SCI_SETMOUSEDOWNCAPTURES, FALSE, 0);
|
||||
SendMessage(hwnd,SCI_SETMOUSEWHEELCAPTURES,FALSE, 0);
|
||||
SendMessage(hwnd,SCI_SETVIRTUALSPACEOPTIONS, (bDenyVirtualSpaceAccess ? SCVS_NONE : SCVS_RECTANGULARSELECTION), 0);
|
||||
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_NEXT + (SCMOD_CTRL << 16)),SCI_PARADOWN);
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_PRIOR + (SCMOD_CTRL << 16)),SCI_PARAUP);
|
||||
@ -287,7 +287,7 @@ void EditSetNewText(HWND hwnd,char* lpstrText,DWORD cbText)
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,0,0);
|
||||
UndoRedoSelectionMap(-1,NULL);
|
||||
SendMessage(hwnd,SCI_CLEARALL,0,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)-1,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)MARKER_NP3_BOOKMARK,0);
|
||||
SendMessage(hwnd,SCI_SETSCROLLWIDTH, DEFAULT_SCROLL_WIDTH,0);
|
||||
SendMessage(hwnd,SCI_SETXOFFSET,0,0);
|
||||
|
||||
@ -331,7 +331,7 @@ BOOL EditConvertText(HWND hwnd,int encSource,int encDest,BOOL bSetSavePoint)
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,0,0);
|
||||
UndoRedoSelectionMap(-1,NULL);
|
||||
SendMessage(hwnd,SCI_CLEARALL,0,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)-1,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)MARKER_NP3_BOOKMARK,0);
|
||||
Encoding_SciSetCodePage(hwnd,encDest);
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,(WPARAM)1,0);
|
||||
//SendMessage(hwnd,EM_EMPTYUNDOBUFFER,0,0); // deprecated
|
||||
@ -363,7 +363,7 @@ BOOL EditConvertText(HWND hwnd,int encSource,int encDest,BOOL bSetSavePoint)
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,0,0);
|
||||
UndoRedoSelectionMap(-1,NULL);
|
||||
SendMessage(hwnd,SCI_CLEARALL,0,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)-1,0);
|
||||
SendMessage(hwnd,SCI_MARKERDELETEALL,(WPARAM)MARKER_NP3_BOOKMARK,0);
|
||||
Encoding_SciSetCodePage(hwnd,encDest);
|
||||
SendMessage(hwnd,SCI_ADDTEXT,cbText,(LPARAM)pchText);
|
||||
SendMessage(hwnd,SCI_SETUNDOCOLLECTION,(WPARAM)1,0);
|
||||
|
||||
@ -44,6 +44,7 @@ typedef struct _editfindreplace
|
||||
#define IDMSG_SWITCHTOFIND 300
|
||||
#define IDMSG_SWITCHTOREPLACE 301
|
||||
|
||||
#define MARKER_NP3_BOOKMARK 0
|
||||
|
||||
#define INDIC_NP3_MARK_OCCURANCE 1
|
||||
#define INDIC_NP3_MATCH_BRACE 2
|
||||
|
||||
@ -179,7 +179,7 @@ BOOL IniSectionSetString(LPWSTR lpCachedIniSection,LPCWSTR lpName,LPCWSTR lpStri
|
||||
p = StrEnd(p) + 1;
|
||||
}
|
||||
StringCchPrintf(tch,COUNTOF(tch),L"%s=%s",lpName,lpString);
|
||||
StringCchCopy(p,512*3+64,tch);
|
||||
StringCchCopy(p,COUNTOF(tch),tch);
|
||||
p = StrEnd(p) + 1;
|
||||
*p = 0;
|
||||
return(TRUE);
|
||||
|
||||
@ -310,68 +310,6 @@ WCHAR g_wchWorkingDirectory[MAX_PATH+2] = { L'\0' };
|
||||
static UT_icd UndoRedoSelection_icd = { sizeof(UndoRedoSelection_t), NULL, NULL, NULL };
|
||||
static UT_array* UndoRedoSelectionUTArray = NULL;
|
||||
|
||||
|
||||
//Graphics for bookmark indicator
|
||||
/* XPM */
|
||||
static char * bookmark_pixmap[] = {
|
||||
"11 11 44 1",
|
||||
" c #EBE9ED",
|
||||
". c #E5E3E7",
|
||||
"+ c #767C6D",
|
||||
"@ c #2A3120",
|
||||
"# c #1B2312",
|
||||
"$ c #333B28",
|
||||
"% c #E3E1E5",
|
||||
"& c #D8D6DA",
|
||||
"* c #444D38",
|
||||
"= c #3F5C19",
|
||||
"- c #63AD00",
|
||||
"; c #73C900",
|
||||
"> c #64AF00",
|
||||
", c #3D5718",
|
||||
"' c #3E4634",
|
||||
") c #7B8172",
|
||||
"! c #42601A",
|
||||
"~ c #74CB00",
|
||||
"{ c #71C600",
|
||||
"] c #3A5317",
|
||||
"^ c #707668",
|
||||
"/ c #3F4931",
|
||||
"( c #262C1D",
|
||||
"_ c #2F3A1E",
|
||||
": c #72C700",
|
||||
"< c #74CA00",
|
||||
"[ c #0E1109",
|
||||
"} c #3C462F",
|
||||
"| c #62AC00",
|
||||
"1 c #21271A",
|
||||
"2 c #7A8071",
|
||||
"3 c #405D19",
|
||||
"4 c #3D5A18",
|
||||
"5 c #D9D7DB",
|
||||
"6 c #4E5841",
|
||||
"7 c #72C800",
|
||||
"8 c #63AC00",
|
||||
"9 c #3F5B19",
|
||||
"0 c #3D4533",
|
||||
"a c #DFDDE0",
|
||||
"b c #353E29",
|
||||
"c c #29331B",
|
||||
"d c #7B8272",
|
||||
"e c #DDDBDF",
|
||||
" ",
|
||||
" .+@#$+% ",
|
||||
" &*=-;>,' ",
|
||||
" )!~~~~{]^ ",
|
||||
" /-~~~~~>( ",
|
||||
" _:~~~~~<[ ",
|
||||
" }|~~~~~|1 ",
|
||||
" 23~~~~;4+ ",
|
||||
" 56=|7890 ",
|
||||
" a2bc}de ",
|
||||
" "
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// Flags
|
||||
@ -3920,27 +3858,21 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
int iPos = (int)SendMessage( hwndEdit , SCI_GETCURRENTPOS , 0 , 0);
|
||||
int iLine = (int)SendMessage( hwndEdit , SCI_LINEFROMPOSITION , iPos , 0 );
|
||||
|
||||
int bitmask = (int)SendMessage( hwndEdit , SCI_MARKERGET , iLine , 0 );
|
||||
int bitmask = (int)SendMessage( hwndEdit , SCI_MARKERGET , iLine , MARKER_NP3_BOOKMARK);
|
||||
if( bitmask & 1 )
|
||||
{
|
||||
// unset
|
||||
SendMessage( hwndEdit , SCI_MARKERDELETE , iLine , 0 );
|
||||
SendMessage( hwndEdit , SCI_MARKERDELETE , iLine , MARKER_NP3_BOOKMARK);
|
||||
}
|
||||
else
|
||||
{
|
||||
if( bShowSelectionMargin )
|
||||
{
|
||||
SendMessage( hwndEdit , SCI_MARKERDEFINEPIXMAP , 0 , (LPARAM)bookmark_pixmap );
|
||||
}
|
||||
if( bShowSelectionMargin )
|
||||
SendMessage(hwndEdit, SCI_MARKERDEFINE, MARKER_NP3_BOOKMARK, SC_MARK_BOOKMARK);
|
||||
else
|
||||
{
|
||||
SendMessage( hwndEdit , SCI_MARKERSETBACK , 0 , 0xff << 8 );
|
||||
SendMessage( hwndEdit , SCI_MARKERSETALPHA , 0 , 20);
|
||||
SendMessage( hwndEdit , SCI_MARKERDEFINE , 0 , SC_MARK_BACKGROUND );
|
||||
}
|
||||
// set
|
||||
SendMessage( hwndEdit , SCI_MARKERADD , iLine , 0 );
|
||||
//SendMessage( hwndEdit , SCI_MARKERADD , iLine , 1 );
|
||||
SendMessage(hwndEdit, SCI_MARKERDEFINE, MARKER_NP3_BOOKMARK, SC_MARK_BACKGROUND);
|
||||
|
||||
// set
|
||||
SendMessage( hwndEdit , SCI_MARKERADD , iLine , MARKER_NP3_BOOKMARK);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -3948,7 +3880,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
|
||||
case BME_EDIT_BOOKMARKCLEAR:
|
||||
{
|
||||
SendMessage(hwndEdit,SCI_MARKERDELETEALL,(WPARAM)-1 ,0);
|
||||
SendMessage(hwndEdit,SCI_MARKERDELETEALL, (WPARAM)MARKER_NP3_BOOKMARK, 0);
|
||||
|
||||
break;
|
||||
}
|
||||
@ -4195,11 +4127,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
|
||||
//Depending on if the margin is visible or not, choose different bookmark indication
|
||||
if (bShowSelectionMargin) {
|
||||
SendMessage(hwndEdit,SCI_MARKERDEFINEPIXMAP,0,(LPARAM)bookmark_pixmap);
|
||||
SendMessage(hwndEdit, SCI_MARKERDEFINE,0,SC_MARK_BOOKMARK);
|
||||
}
|
||||
else {
|
||||
SendMessage(hwndEdit,SCI_MARKERSETBACK,0,0xff << 8);
|
||||
SendMessage(hwndEdit,SCI_MARKERSETALPHA,0,20);
|
||||
SendMessage(hwndEdit,SCI_MARKERDEFINE,0,SC_MARK_BACKGROUND);
|
||||
}
|
||||
}
|
||||
@ -5437,8 +5367,8 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
|
||||
int bitmask = (int)SendMessage( hwndEdit , SCI_MARKERGET , iCurLine-1 , 0 );
|
||||
if( bitmask & 1 )
|
||||
{
|
||||
SendMessage( hwndEdit , SCI_MARKERDELETE , iCurLine-1 , 0 );
|
||||
SendMessage( hwndEdit , SCI_MARKERADD , iCurLine , 0 );
|
||||
SendMessage( hwndEdit , SCI_MARKERDELETE , iCurLine-1 , MARKER_NP3_BOOKMARK);
|
||||
SendMessage( hwndEdit , SCI_MARKERADD , iCurLine , MARKER_NP3_BOOKMARK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
src/Notepad3.rc
BIN
src/Notepad3.rc
Binary file not shown.
156
src/Styles.c
156
src/Styles.c
@ -69,21 +69,44 @@ EDITLEXER lexDefault = { SCLEX_NULL, 63000, L"Default Text", L"txt; text; wtx;
|
||||
/* 9 */ { SCI_SETCARETFORE+SCI_SETCARETWIDTH, 63109, L"Caret (Color, Size 1-3)", L"", L"" },
|
||||
/* 10 */ { SCI_SETEDGECOLOUR, 63110, L"Long Line Marker (Colors)", L"fore:#FFC000", L"" },
|
||||
/* 11 */ { SCI_SETEXTRAASCENT+SCI_SETEXTRADESCENT, 63111, L"Extra Line Spacing (Size)", L"size:2", L"" },
|
||||
/* 12 */ { SCI_MARKERSETBACK+SCI_MARKERSETALPHA, 63124, L"Book Mark Background (Color)", L"back:#00A000; alpha:40", L"" },
|
||||
|
||||
/* 13 */ { STYLE_DEFAULT, 63112, L"2nd Default Style", L"font:Courier New; size:10", L"" },
|
||||
/* 14 */ { STYLE_LINENUMBER, 63113, L"2nd Margins and Line Numbers", L"font:Tahoma; size:-2; fore:#FF0000", L"" },
|
||||
/* 15 */ { STYLE_BRACELIGHT, 63114, L"2nd Matching Braces", L"bold; fore:#FF0000", L"" },
|
||||
/* 16 */ { STYLE_BRACEBAD, 63115, L"2nd Matching Braces Error", L"bold; fore:#000080", L"" },
|
||||
/* 17 */ { STYLE_CONTROLCHAR, 63116, L"2nd Control Characters (Font)", L"size:-1", L"" },
|
||||
/* 18 */ { STYLE_INDENTGUIDE, 63117, L"2nd Indentation Guide (Color)", L"fore:#A0A0A0", L"" },
|
||||
/* 19 */ { SCI_SETSELFORE+SCI_SETSELBACK, 63118, L"2nd Selected Text (Colors)", L"eolfilled", L"" },
|
||||
/* 20 */ { SCI_SETWHITESPACEFORE+SCI_SETWHITESPACEBACK+SCI_SETWHITESPACESIZE, 63119, L"2nd Whitespace (Colors, Size 0-5)", L"fore:#FF4000", L"" },
|
||||
/* 21 */ { SCI_SETCARETLINEBACK, 63120, L"2nd Current Line Background (Color)", L"back:#FFFF00; alpha:50", L"" },
|
||||
/* 22 */ { SCI_SETCARETFORE+SCI_SETCARETWIDTH, 63121, L"2nd Caret (Color, Size 1-3)", L"", L"" },
|
||||
/* 23 */ { SCI_SETEDGECOLOUR, 63122, L"2nd Long Line Marker (Colors)", L"fore:#FFC000", L"" },
|
||||
/* 24 */ { SCI_SETEXTRAASCENT+SCI_SETEXTRADESCENT, 63123, L"2nd Extra Line Spacing (Size)", L"", L"" },
|
||||
/* 25 */ { SCI_MARKERSETBACK+SCI_MARKERSETALPHA, 63125, L"2nd Book Mark Background (Color)", L"back:#0000A0; alpha:40", L"" },
|
||||
|
||||
/* 12 */ { STYLE_DEFAULT, 63112, L"2nd Default Style", L"font:Courier New; size:10", L"" },
|
||||
/* 13 */ { STYLE_LINENUMBER, 63113, L"2nd Margins and Line Numbers", L"font:Tahoma; size:-2; fore:#FF0000", L"" },
|
||||
/* 14 */ { STYLE_BRACELIGHT, 63114, L"2nd Matching Braces", L"bold; fore:#FF0000", L"" },
|
||||
/* 15 */ { STYLE_BRACEBAD, 63115, L"2nd Matching Braces Error", L"bold; fore:#000080", L"" },
|
||||
/* 16 */ { STYLE_CONTROLCHAR, 63116, L"2nd Control Characters (Font)", L"size:-1", L"" },
|
||||
/* 17 */ { STYLE_INDENTGUIDE, 63117, L"2nd Indentation Guide (Color)", L"fore:#A0A0A0", L"" },
|
||||
/* 18 */ { SCI_SETSELFORE+SCI_SETSELBACK, 63118, L"2nd Selected Text (Colors)", L"eolfilled", L"" },
|
||||
/* 19 */ { SCI_SETWHITESPACEFORE+SCI_SETWHITESPACEBACK+SCI_SETWHITESPACESIZE, 63119, L"2nd Whitespace (Colors, Size 0-5)", L"fore:#FF4000", L"" },
|
||||
/* 20 */ { SCI_SETCARETLINEBACK, 63120, L"2nd Current Line Background (Color)", L"back:#FFFF00; alpha:50", L"" },
|
||||
/* 21 */ { SCI_SETCARETFORE+SCI_SETCARETWIDTH, 63121, L"2nd Caret (Color, Size 1-3)", L"", L"" },
|
||||
/* 22 */ { SCI_SETEDGECOLOUR, 63122, L"2nd Long Line Marker (Colors)", L"fore:#FFC000", L"" },
|
||||
/* 23 */ { SCI_SETEXTRAASCENT+SCI_SETEXTRADESCENT, 63123, L"2nd Extra Line Spacing (Size)", L"", L"" },
|
||||
{ -1, 00000, L"", L"", L"" } } };
|
||||
|
||||
|
||||
enum LexDefaultStyles {
|
||||
STY_DEFAULT = 0,
|
||||
STY_MARGIN = 1,
|
||||
STY_BRACE_OK = 2,
|
||||
STY_BRACE_BAD = 3,
|
||||
STY_CTRL_CHR = 4,
|
||||
STY_INDENT_GUIDE = 5,
|
||||
STY_SEL_TXT = 6,
|
||||
STY_WHITESPACE = 7,
|
||||
STY_CUR_LN_BCK = 8,
|
||||
STY_CARET = 9,
|
||||
STY_LONG_LN_MRK = 10,
|
||||
STY_X_LN_SPACE = 11,
|
||||
STY_BOOK_MARK = 12,
|
||||
|
||||
STY_CNT_LAST = 13 // STY_2ND_XXX = STY_XXX + STY_CNT_LAST
|
||||
};
|
||||
|
||||
|
||||
KEYWORDLIST KeyWords_HTML = {
|
||||
"!doctype ^aria- ^data- a abbr accept accept-charset accesskey acronym action address align alink "
|
||||
"alt and applet archive area article aside async audio autocomplete autofocus autoplay axis b "
|
||||
@ -2972,10 +2995,10 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_SETKEYWORDS,i,(LPARAM)pLexNew->pKeyWords->pszKeyWords[i]);
|
||||
|
||||
// Use 2nd default style
|
||||
iIdx = (bUse2ndDefaultStyle) ? 12 : 0;
|
||||
iIdx = (bUse2ndDefaultStyle) ? STY_CNT_LAST : 0;
|
||||
|
||||
// Font quality setup, check availability of Consolas
|
||||
Style_SetFontQuality(hwnd,lexDefault.Styles[0+iIdx].szValue);
|
||||
Style_SetFontQuality(hwnd,lexDefault.Styles[STY_DEFAULT + iIdx].szValue);
|
||||
fIsConsolasAvailable = IsFontAvailable(L"Consolas");
|
||||
|
||||
// Clear
|
||||
@ -2985,48 +3008,48 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_STYLERESETDEFAULT,0,0);
|
||||
SendMessage(hwnd,SCI_STYLESETCHARACTERSET,STYLE_DEFAULT,(LPARAM)DEFAULT_CHARSET);
|
||||
iBaseFontSize = 10;
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[0+iIdx].iStyle,lexDefault.Styles[0+iIdx].szValue); // default
|
||||
Style_StrGetSize(lexDefault.Styles[0+iIdx].szValue,&iBaseFontSize); // base size
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[STY_DEFAULT + iIdx].iStyle,lexDefault.Styles[STY_DEFAULT + iIdx].szValue); // default
|
||||
Style_StrGetSize(lexDefault.Styles[STY_DEFAULT + iIdx].szValue,&iBaseFontSize); // base size
|
||||
|
||||
// Auto-select codepage according to charset
|
||||
//Style_SetACPfromCharSet(hwnd);
|
||||
|
||||
if (!Style_StrGetColor(TRUE,lexDefault.Styles[0+iIdx].szValue,&iValue))
|
||||
if (!Style_StrGetColor(TRUE,lexDefault.Styles[STY_DEFAULT + iIdx].szValue,&iValue))
|
||||
SendMessage(hwnd,SCI_STYLESETFORE,STYLE_DEFAULT,(LPARAM)GetSysColor(COLOR_WINDOWTEXT)); // default text color
|
||||
if (!Style_StrGetColor(FALSE,lexDefault.Styles[0+iIdx].szValue,&iValue))
|
||||
if (!Style_StrGetColor(FALSE,lexDefault.Styles[STY_DEFAULT + iIdx].szValue,&iValue))
|
||||
SendMessage(hwnd,SCI_STYLESETBACK,STYLE_DEFAULT,(LPARAM)GetSysColor(COLOR_WINDOW)); // default window color
|
||||
|
||||
if (pLexNew->iLexer != SCLEX_NULL || pLexNew == &lexANSI)
|
||||
Style_SetStyles(hwnd,pLexNew->Styles[0].iStyle,pLexNew->Styles[0].szValue); // lexer default
|
||||
Style_SetStyles(hwnd,pLexNew->Styles[STY_DEFAULT].iStyle,pLexNew->Styles[STY_DEFAULT].szValue); // lexer default
|
||||
SendMessage(hwnd,SCI_STYLECLEARALL,0,0);
|
||||
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[1+iIdx].iStyle,lexDefault.Styles[1+iIdx].szValue); // linenumber
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[STY_MARGIN + iIdx].iStyle,lexDefault.Styles[STY_MARGIN + iIdx].szValue); // linenumber
|
||||
|
||||
if (bUseOldStyleBraceMatching) {
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[2+iIdx].iStyle,lexDefault.Styles[2+iIdx].szValue); // brace light
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[STY_BRACE_OK + iIdx].iStyle,lexDefault.Styles[STY_BRACE_OK + iIdx].szValue); // brace light
|
||||
}
|
||||
else {
|
||||
if (Style_StrGetColor(TRUE, lexDefault.Styles[2 + iIdx].szValue, &iValue))
|
||||
if (Style_StrGetColor(TRUE, lexDefault.Styles[STY_BRACE_OK + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETFORE, INDIC_NP3_MATCH_BRACE, iValue);
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[2 + iIdx].szValue, &iValue))
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[STY_BRACE_OK + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETALPHA, INDIC_NP3_MATCH_BRACE, iValue);
|
||||
}
|
||||
if (bUseOldStyleBraceMatching) {
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[3+iIdx].iStyle,lexDefault.Styles[3+iIdx].szValue); // brace bad
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[STY_BRACE_BAD + iIdx].iStyle,lexDefault.Styles[STY_BRACE_BAD + iIdx].szValue); // brace bad
|
||||
}
|
||||
else {
|
||||
if (Style_StrGetColor(TRUE, lexDefault.Styles[3 + iIdx].szValue, &iValue))
|
||||
if (Style_StrGetColor(TRUE, lexDefault.Styles[STY_BRACE_BAD + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETFORE, INDIC_NP3_BAD_BRACE, iValue);
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[3 + iIdx].szValue, &iValue))
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[STY_BRACE_BAD + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETALPHA, INDIC_NP3_BAD_BRACE, iValue);
|
||||
}
|
||||
|
||||
if (pLexNew != &lexANSI)
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[4+iIdx].iStyle,lexDefault.Styles[4+iIdx].szValue); // control char
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[5+iIdx].iStyle,lexDefault.Styles[5+iIdx].szValue); // indent guide
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[STY_CTRL_CHR + iIdx].iStyle,lexDefault.Styles[STY_CTRL_CHR + iIdx].szValue); // control char
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[STY_INDENT_GUIDE + iIdx].iStyle,lexDefault.Styles[STY_INDENT_GUIDE + iIdx].szValue); // indent guide
|
||||
|
||||
// More default values...
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[6+iIdx].szValue,&rgb)) { // selection fore
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[STY_SEL_TXT + iIdx].szValue,&rgb)) { // selection fore
|
||||
SendMessage(hwnd,SCI_SETSELFORE,TRUE,rgb);
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELFORE,rgb,0);
|
||||
}
|
||||
@ -3035,7 +3058,7 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELFORE,0,0);
|
||||
}
|
||||
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[6+iIdx].szValue,&iValue)) { // selection back
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[STY_SEL_TXT + iIdx].szValue,&iValue)) { // selection back
|
||||
SendMessage(hwnd,SCI_SETSELBACK,TRUE,iValue);
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELBACK,iValue,0);
|
||||
}
|
||||
@ -3044,7 +3067,7 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELBACK,RGB(0xC0,0xC0,0xC0),0);
|
||||
}
|
||||
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[6+iIdx].szValue,&iValue)) { // selection alpha
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[STY_SEL_TXT + iIdx].szValue,&iValue)) { // selection alpha
|
||||
SendMessage(hwnd,SCI_SETSELALPHA,iValue,0);
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELALPHA,iValue,0);
|
||||
}
|
||||
@ -3053,38 +3076,38 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_SETADDITIONALSELALPHA,SC_ALPHA_NOALPHA,0);
|
||||
}
|
||||
|
||||
if (StrStrI(lexDefault.Styles[6+iIdx].szValue,L"eolfilled")) // selection eolfilled
|
||||
if (StrStrI(lexDefault.Styles[STY_SEL_TXT + iIdx].szValue,L"eolfilled")) // selection eolfilled
|
||||
SendMessage(hwnd,SCI_SETSELEOLFILLED,1,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETSELEOLFILLED,0,0);
|
||||
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[7+iIdx].szValue,&rgb)) // whitespace fore
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,&rgb)) // whitespace fore
|
||||
SendMessage(hwnd,SCI_SETWHITESPACEFORE,TRUE,rgb);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETWHITESPACEFORE,0,0);
|
||||
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[7+iIdx].szValue,&rgb)) // whitespace back
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,&rgb)) // whitespace back
|
||||
SendMessage(hwnd,SCI_SETWHITESPACEBACK,TRUE,rgb);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETWHITESPACEBACK,0,0); // use a default value...
|
||||
|
||||
// whitespace dot size
|
||||
iValue = 1;
|
||||
if (Style_StrGetSize(lexDefault.Styles[7+iIdx].szValue,&iValue)) {
|
||||
if (Style_StrGetSize(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,&iValue)) {
|
||||
|
||||
WCHAR tch[32] = { L'\0' };
|
||||
WCHAR wchStyle[BUFSIZE_STYLE_VALUE];
|
||||
StringCchCopyN(wchStyle,COUNTOF(wchStyle),lexDefault.Styles[7 + iIdx].szValue,COUNTOF(lexDefault.Styles[7 + iIdx].szValue));
|
||||
StringCchCopyN(wchStyle,COUNTOF(wchStyle),lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,COUNTOF(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue));
|
||||
|
||||
iValue = max(min(iValue,5),0);
|
||||
StringCchPrintf(lexDefault.Styles[7+iIdx].szValue,COUNTOF(lexDefault.Styles[7 + iIdx].szValue),L"size:%i",iValue);
|
||||
StringCchPrintf(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,COUNTOF(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue),L"size:%i",iValue);
|
||||
|
||||
if (Style_StrGetColor(TRUE,wchStyle,&rgb)) {
|
||||
StringCchPrintf(tch,COUNTOF(tch),L"; fore:#%02X%02X%02X",
|
||||
(int)GetRValue(rgb),
|
||||
(int)GetGValue(rgb),
|
||||
(int)GetBValue(rgb));
|
||||
StringCchCat(lexDefault.Styles[7 + iIdx].szValue,COUNTOF(lexDefault.Styles[7 + iIdx].szValue),tch);
|
||||
StringCchCat(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,COUNTOF(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue),tch);
|
||||
}
|
||||
|
||||
if (Style_StrGetColor(FALSE,wchStyle,&rgb)) {
|
||||
@ -3092,19 +3115,19 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
(int)GetRValue(rgb),
|
||||
(int)GetGValue(rgb),
|
||||
(int)GetBValue(rgb));
|
||||
StringCchCat(lexDefault.Styles[7 + iIdx].szValue,COUNTOF(lexDefault.Styles[7 + iIdx].szValue),tch);
|
||||
StringCchCat(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue,COUNTOF(lexDefault.Styles[STY_WHITESPACE + iIdx].szValue),tch);
|
||||
}
|
||||
}
|
||||
SendMessage(hwnd,SCI_SETWHITESPACESIZE,iValue,0);
|
||||
|
||||
if (bHiliteCurrentLine) {
|
||||
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[8+iIdx].szValue,&rgb)) // caret line back
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[STY_CUR_LN_BCK + iIdx].szValue,&rgb)) // caret line back
|
||||
{
|
||||
SendMessage(hwnd,SCI_SETCARETLINEVISIBLE,TRUE,0);
|
||||
SendMessage(hwnd,SCI_SETCARETLINEBACK,rgb,0);
|
||||
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[8+iIdx].szValue,&iValue))
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[STY_CUR_LN_BCK + iIdx].szValue,&iValue))
|
||||
SendMessage(hwnd,SCI_SETCARETLINEBACKALPHA,iValue,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETCARETLINEBACKALPHA,SC_ALPHA_NOALPHA,0);
|
||||
@ -3115,15 +3138,28 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETCARETLINEVISIBLE,FALSE,0);
|
||||
|
||||
|
||||
// bookmark line or marker
|
||||
if (Style_StrGetColor(FALSE, lexDefault.Styles[STY_BOOK_MARK + iIdx].szValue, &rgb)) // book mark back
|
||||
SendMessage(hwnd, SCI_MARKERSETBACK, MARKER_NP3_BOOKMARK, rgb);
|
||||
else
|
||||
SendMessage(hwnd, SCI_MARKERSETBACK, MARKER_NP3_BOOKMARK, 0xa0 << 8);
|
||||
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[STY_BOOK_MARK + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_MARKERSETALPHA, MARKER_NP3_BOOKMARK, iValue);
|
||||
else
|
||||
SendMessage(hwnd, SCI_MARKERSETALPHA, MARKER_NP3_BOOKMARK, 20);
|
||||
|
||||
|
||||
// caret style and width
|
||||
if (StrStr(lexDefault.Styles[9+iIdx].szValue,L"block")) {
|
||||
if (StrStr(lexDefault.Styles[STY_CARET + iIdx].szValue,L"block")) {
|
||||
SendMessage(hwnd,SCI_SETCARETSTYLE,CARETSTYLE_BLOCK,0);
|
||||
StringCchCopy(wchCaretStyle,COUNTOF(wchCaretStyle),L"block");
|
||||
}
|
||||
else {
|
||||
WCHAR wch[32] = { L'\0' };
|
||||
iValue = 1;
|
||||
if (Style_StrGetSize(lexDefault.Styles[9+iIdx].szValue,&iValue)) {
|
||||
if (Style_StrGetSize(lexDefault.Styles[STY_CARET + iIdx].szValue,&iValue)) {
|
||||
iValue = max(min(iValue,3),1);
|
||||
StringCchPrintf(wch,COUNTOF(wch),L"size:%i",iValue);
|
||||
StringCchCat(wchCaretStyle,COUNTOF(wchCaretStyle),wch);
|
||||
@ -3131,7 +3167,7 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_SETCARETSTYLE,CARETSTYLE_LINE,0);
|
||||
SendMessage(hwnd,SCI_SETCARETWIDTH,iValue,0);
|
||||
}
|
||||
if (StrStr(lexDefault.Styles[9+iIdx].szValue,L"noblink")) {
|
||||
if (StrStr(lexDefault.Styles[STY_CARET + iIdx].szValue,L"noblink")) {
|
||||
SendMessage(hwnd,SCI_SETCARETPERIOD,(WPARAM)0,0);
|
||||
if (StringCchLen(wchCaretStyle))
|
||||
StringCchCat(wchCaretStyle,COUNTOF(wchCaretStyle),L"; ");
|
||||
@ -3141,7 +3177,7 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
SendMessage(hwnd,SCI_SETCARETPERIOD,(WPARAM)GetCaretBlinkTime(),0);
|
||||
|
||||
// caret fore
|
||||
if (!Style_StrGetColor(TRUE,lexDefault.Styles[9+iIdx].szValue,&rgb))
|
||||
if (!Style_StrGetColor(TRUE,lexDefault.Styles[STY_CARET + iIdx].szValue,&rgb))
|
||||
rgb = GetSysColor(COLOR_WINDOWTEXT);
|
||||
else {
|
||||
WCHAR wch[32] = { L'\0' };
|
||||
@ -3157,27 +3193,27 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
rgb = (int)SendMessage(hwnd,SCI_STYLEGETFORE,0,0);
|
||||
SendMessage(hwnd,SCI_SETCARETFORE,rgb,0);
|
||||
SendMessage(hwnd,SCI_SETADDITIONALCARETFORE,rgb,0);
|
||||
StringCchCopy(lexDefault.Styles[9 + iIdx].szValue,COUNTOF(lexDefault.Styles[9 + iIdx].szValue),wchCaretStyle);
|
||||
StringCchCopy(lexDefault.Styles[STY_CARET + iIdx].szValue,COUNTOF(lexDefault.Styles[STY_CARET + iIdx].szValue),wchCaretStyle);
|
||||
|
||||
if (SendMessage(hwnd,SCI_GETEDGEMODE,0,0) == EDGE_LINE) {
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[10+iIdx].szValue,&rgb)) // edge fore
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[STY_LONG_LN_MRK + iIdx].szValue,&rgb)) // edge fore
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,rgb,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,GetSysColor(COLOR_3DLIGHT),0);
|
||||
}
|
||||
else {
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[10+iIdx].szValue,&rgb)) // edge back
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[STY_LONG_LN_MRK + iIdx].szValue,&rgb)) // edge back
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,rgb,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,GetSysColor(COLOR_3DLIGHT),0);
|
||||
}
|
||||
|
||||
// Extra Line Spacing
|
||||
if (Style_StrGetSize(lexDefault.Styles[11+iIdx].szValue,&iValue) && pLexNew != &lexANSI) {
|
||||
if (Style_StrGetSize(lexDefault.Styles[STY_X_LN_SPACE + iIdx].szValue,&iValue) && pLexNew != &lexANSI) {
|
||||
int iAscent = 0;
|
||||
int iDescent = 0;
|
||||
iValue = min(max(iValue,0),64);
|
||||
StringCchPrintf(lexDefault.Styles[11+iIdx].szValue,COUNTOF(lexDefault.Styles[11 + iIdx].szValue),L"size:%i",iValue);
|
||||
StringCchPrintf(lexDefault.Styles[STY_X_LN_SPACE + iIdx].szValue,COUNTOF(lexDefault.Styles[STY_X_LN_SPACE + iIdx].szValue),L"size:%i",iValue);
|
||||
if (iValue % 2) {
|
||||
iAscent++;
|
||||
iValue--;
|
||||
@ -3190,7 +3226,7 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
else {
|
||||
SendMessage(hwnd,SCI_SETEXTRAASCENT,0,0);
|
||||
SendMessage(hwnd,SCI_SETEXTRADESCENT,0,0);
|
||||
//wsprintf(lexDefault.Styles[11+iIdx].szValue,L"size:0");
|
||||
//wsprintf(lexDefault.Styles[STY_X_LN_SPACE + iIdx].szValue,L"size:0");
|
||||
}
|
||||
{ // set folding style; braces are for scoping only
|
||||
static const int iMarkerIDs[] =
|
||||
@ -3341,16 +3377,16 @@ void Style_SetLongLineColors(HWND hwnd)
|
||||
int rgb;
|
||||
|
||||
// Use 2nd default style
|
||||
int iIdx = (bUse2ndDefaultStyle) ? 12 : 0;
|
||||
int iIdx = (bUse2ndDefaultStyle) ? STY_CNT_LAST : 0;
|
||||
|
||||
if (SendMessage(hwnd,SCI_GETEDGEMODE,0,0) == EDGE_LINE) {
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[10+iIdx].szValue,&rgb)) // edge fore
|
||||
if (Style_StrGetColor(TRUE,lexDefault.Styles[STY_LONG_LN_MRK + iIdx].szValue,&rgb)) // edge fore
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,rgb,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,GetSysColor(COLOR_3DLIGHT),0);
|
||||
}
|
||||
else {
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[10+iIdx].szValue,&rgb)) // edge back
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[STY_LONG_LN_MRK + iIdx].szValue,&rgb)) // edge back
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,rgb,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETEDGECOLOUR,GetSysColor(COLOR_3DLIGHT),0);
|
||||
@ -3365,17 +3401,17 @@ void Style_SetLongLineColors(HWND hwnd)
|
||||
void Style_SetCurrentLineBackground(HWND hwnd)
|
||||
{
|
||||
// Use 2nd default style
|
||||
int iIdx = (bUse2ndDefaultStyle) ? 12 : 0;
|
||||
int iIdx = (bUse2ndDefaultStyle) ? STY_CNT_LAST : 0;
|
||||
|
||||
if (bHiliteCurrentLine) {
|
||||
int rgb = 0;
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[8+iIdx].szValue,&rgb)) // caret line back
|
||||
if (Style_StrGetColor(FALSE,lexDefault.Styles[STY_CUR_LN_BCK + iIdx].szValue,&rgb)) // caret line back
|
||||
{
|
||||
SendMessage(hwnd,SCI_SETCARETLINEVISIBLE,TRUE,0);
|
||||
SendMessage(hwnd,SCI_SETCARETLINEBACK,rgb,0);
|
||||
|
||||
int iValue = 0;
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[8+iIdx].szValue,&iValue))
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[STY_CUR_LN_BCK + iIdx].szValue,&iValue))
|
||||
SendMessage(hwnd,SCI_SETCARETLINEBACKALPHA,iValue,0);
|
||||
else
|
||||
SendMessage(hwnd,SCI_SETCARETLINEBACKALPHA,SC_ALPHA_NOALPHA,0);
|
||||
@ -3697,10 +3733,10 @@ void Style_ToggleUse2ndDefault(HWND hwnd)
|
||||
//
|
||||
void Style_SetDefaultFont(HWND hwnd)
|
||||
{
|
||||
int iIdx = (bUse2ndDefaultStyle) ? 12 : 0;
|
||||
int iIdx = (bUse2ndDefaultStyle) ? STY_CNT_LAST : 0;
|
||||
if (Style_SelectFont(hwnd,
|
||||
lexDefault.Styles[0+iIdx].szValue,
|
||||
COUNTOF(lexDefault.Styles[0].szValue),
|
||||
lexDefault.Styles[STY_DEFAULT + iIdx].szValue,
|
||||
COUNTOF(lexDefault.Styles[STY_DEFAULT].szValue),
|
||||
TRUE)) {
|
||||
fStylesModified = TRUE;
|
||||
Style_SetLexer(hwnd,pLexCurrent);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user