From 0f4e6bdda8f73f395bd0b01ea9c2d5d8bf5fdf45 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Wed, 25 Oct 2017 15:34:28 +0200 Subject: [PATCH] + add Book Mark style (Color Background and Alpha) to customize schemes... + replace old bookmark pixmap (visible margin) by Scintilla's BOOKMARK marker style --- src/Edit.c | 12 ++-- src/Edit.h | 1 + src/Helpers.c | 2 +- src/Notepad3.c | 94 ++++------------------------- src/Notepad3.rc | Bin 182282 -> 182530 bytes src/Styles.c | 156 +++++++++++++++++++++++++++++------------------- 6 files changed, 116 insertions(+), 149 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index a1d6d2786..b1a4bddab 100644 --- a/src/Edit.c +++ b/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); diff --git a/src/Edit.h b/src/Edit.h index 094691bc9..5b48fba87 100644 --- a/src/Edit.h +++ b/src/Edit.h @@ -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 diff --git a/src/Helpers.c b/src/Helpers.c index 4bb8de5b1..3fbed2cad 100644 --- a/src/Helpers.c +++ b/src/Helpers.c @@ -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); diff --git a/src/Notepad3.c b/src/Notepad3.c index a45651d27..3b789f9f5 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -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); } } } diff --git a/src/Notepad3.rc b/src/Notepad3.rc index 911332e04a1c6a4693dd45dcb43bcc10cea3accb..3bc8d4e1b65715e870c53474d953a12519bf83c1 100644 GIT binary patch delta 80 zcmeC0z}+;7yP<_~3sX%0^d|{ST7pgt`9PS>puphEkjPNPkUgEdgUNb&LL!sS^bg%k O95@tgkLqXIU;zNLaTa<2 delta 19 acmZpg#N9Q4yP<_~3sX%0_K*oo>ns3D$Omo! diff --git a/src/Styles.c b/src/Styles.c index 7f2165ec0..f3e5e3522 100644 --- a/src/Styles.c +++ b/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);