From dccefbc1d114d8624894892dfb89ee305bbb5c0e Mon Sep 17 00:00:00 2001 From: "METANEOCORTEX\\Kotti" Date: Sun, 25 Aug 2024 13:16:15 +0200 Subject: [PATCH] + chg: move caret line outline frame translucency to alpha2 + chg: zoom dependent caret outline frame thickness, zoom dependent visible whitespace size --- res/StdDarkModeScheme.ini | 4 ++-- src/Notepad3.c | 5 +++++ src/SciCall.h | 1 + src/StyleLexers/styleLexStandard.c | 4 ++-- src/Styles.c | 14 +++++++++----- src/TypeDefs.h | 3 +++ 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/res/StdDarkModeScheme.ini b/res/StdDarkModeScheme.ini index 57aa01868..774943793 100644 --- a/res/StdDarkModeScheme.ini +++ b/res/StdDarkModeScheme.ini @@ -27,7 +27,7 @@ Control Characters (Font)=size:-1 Indentation Guide (Color)=fore:#606060 Selected Text (Colors)=fore:#F2460D; back:#4F51E0; eolfilled; alpha:80 Whitespace (Colors, Size 0-12)=fore:#F2460D -Current Line Background (Color)=size:2; fore:#606060; back:#F2F20D; alpha:50 +Current Line Background (Color)=size:2; fore:#606060; back:#F2F20D; alpha:50; alpha2:50 Long Line Marker (Colors)=fore:#F2B50D Extra Line Spacing (Size)=size:2 Bookmarks and Folding (Colors, Size)=size:+2; fore:#0CE50B; alpha:100 @@ -49,7 +49,7 @@ Inline-IME Color=fore:#4EF64D 2nd Indentation Guide (Color)=fore:#606060 2nd Selected Text (Colors)=fore:#F2460D; eolfilled 2nd Whitespace (Colors, Size 0-12)=fore:#F2460D -2nd Current Line Background (Color)=size:2; fore:#A1B7F2; back:#F2F20D; alpha:50 +2nd Current Line Background (Color)=size:2; fore:#A1B7F2; back:#F2F20D; alpha:50; alpha2:50 2nd Long Line Marker (Colors)=fore:#F2B50D 2nd Bookmarks and Folding (Colors, Size)=size:+2; charset:2; fore:#0CE50B; case:U; alpha:100 2nd Mark Occurrences (Indicator)=fore:#7B83E9; alpha:60; alpha2:60; indic_box diff --git a/src/Notepad3.c b/src/Notepad3.c index 883044691..159ce7845 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -788,6 +788,9 @@ static void _InitGlobals() Globals.CmdLnFlag_ShellUseSystemMRU = 0; Globals.CmdLnFlag_PrintFileAndLeave = 0; + Globals.iWhiteSpaceSize = 2; + Globals.iCaretOutLineFrameSize = 0; + Globals.DOSEncoding = CPI_NONE; Globals.bZeroBasedColumnIndex = false; Globals.bZeroBasedCharacterCount = false; @@ -9142,6 +9145,8 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const SCNotification* const scn) case SCN_ZOOM: + SciCall_SetWhiteSpaceSize(MulDiv(Globals.iWhiteSpaceSize, SciCall_GetZoom(), 100)); + SciCall_SetCaretLineFrame(MulDiv(Globals.iCaretOutLineFrameSize, SciCall_GetZoom(), 100)); UpdateToolbar(); UpdateMargins(true); break; diff --git a/src/SciCall.h b/src/SciCall.h index 97d08afd0..372538068 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -195,6 +195,7 @@ DeclareSciCallV1(SetAdditionalSelectionTyping, SETADDITIONALSELECTIONTYPING, boo DeclareSciCallV1(SetMouseSelectionRectangularSwitch, SETMOUSESELECTIONRECTANGULARSWITCH, bool, flag); DeclareSciCallV1(SetCaretLineLayer, SETCARETLINELAYER, int, layer); +DeclareSciCallR0(GetCaretLineFrame, GETCARETLINEFRAME, int); DeclareSciCallV1(SetCaretLineFrame, SETCARETLINEFRAME, int, frm); DeclareSciCallV1(SetCaretLineVisibleAlways, SETCARETLINEVISIBLEALWAYS, bool, flag); diff --git a/src/StyleLexers/styleLexStandard.c b/src/StyleLexers/styleLexStandard.c index ea04b92e3..10a1b554e 100644 --- a/src/StyleLexers/styleLexStandard.c +++ b/src/StyleLexers/styleLexStandard.c @@ -16,7 +16,7 @@ EDITLEXER lexStandard = /* 5 */ { {STYLE_INDENTGUIDE}, IDS_LEX_STD_INDENT, L"Indentation Guide (Color)", L"fore:#A0A0A0", L"" }, /* 6 */ { {_STYLE_GETSTYLEID(STY_SEL_TXT)}, IDS_LEX_STD_SEL, L"Selected Text (Colors)", L"fore:#FF4000; back:#4040FF; eolfilled; alpha:80", L"" }, /* 7 */ { {_STYLE_GETSTYLEID(STY_WHITESPACE)}, IDS_LEX_STD_WSPC, L"Whitespace (Colors, Size 0-12)", L"size:2; fore:#FF4000; alpha:255", L"" }, - /* 8 */ { {_STYLE_GETSTYLEID(STY_CUR_LN)}, IDS_LEX_STD_LN_BACKGR, L"Current Line Background (Color)", L"size:2; fore:#A0A0A0; back:#FFFF00; alpha:50", L"" }, + /* 8 */ { {_STYLE_GETSTYLEID(STY_CUR_LN)}, IDS_LEX_STD_LN_BACKGR, L"Current Line Background (Color)", L"size:2; fore:#A0A0A0; back:#FFFF00; alpha:50; alpha2:50", L"" }, /* 9 */ { {_STYLE_GETSTYLEID(STY_CARET)}, IDS_LEX_STD_CARET, L"Caret (Color, Size 1-3)", L"", L"" }, /* 10 */ { {_STYLE_GETSTYLEID(STY_LONG_LN_MRK)}, IDS_LEX_STD_LONG_LN, L"Long Line Marker (Colors)", L"fore:#FFC000", L"" }, /* 11 */ { {_STYLE_GETSTYLEID(STY_X_LN_SPACE)}, IDS_LEX_STD_X_SPC, L"Extra Line Spacing (Size)", L"size:2", L"" }, @@ -46,7 +46,7 @@ EDITLEXER lexStandard2nd = /* 5 */ { {STYLE_INDENTGUIDE}, IDS_LEX_2ND_INDENT, L"2nd Indentation Guide (Color)", L"fore:#A0A0A0", L"" }, /* 6 */ { {_STYLE_GETSTYLEID(STY_SEL_TXT)}, IDS_LEX_2ND_SEL, L"2nd Selected Text (Colors)", L"fore:#FF4000; eolfilled", L"" }, /* 7 */ { {_STYLE_GETSTYLEID(STY_WHITESPACE)}, IDS_LEX_2ND_WSPC, L"2nd Whitespace (Colors, Size 0-12)", L"size:2; fore:#FF4000; alpha:255", L"" }, - /* 8 */ { {_STYLE_GETSTYLEID(STY_CUR_LN)}, IDS_LEX_2ND_LN_BACKGR, L"2nd Current Line Background (Color)", L"size:2; fore:#0000B0; back:#FFFF00; alpha:50", L"" }, + /* 8 */ { {_STYLE_GETSTYLEID(STY_CUR_LN)}, IDS_LEX_2ND_LN_BACKGR, L"2nd Current Line Background (Color)", L"size:2; fore:#0000B0; back:#FFFF00; alpha:50; alpha2:50", L"" }, /* 9 */ { {_STYLE_GETSTYLEID(STY_CARET)}, IDS_LEX_2ND_CARET, L"2nd Caret (Color, Size 1-3)", L"", L"" }, /* 10 */ { {_STYLE_GETSTYLEID(STY_LONG_LN_MRK)}, IDS_LEX_2ND_LONG_LN, L"2nd Long Line Marker (Colors)", L"fore:#FFC000", L"" }, /* 11 */ { {_STYLE_GETSTYLEID(STY_X_LN_SPACE)}, IDS_LEX_2ND_X_SPC, L"2nd Extra Line Spacing (Size)", L"size:2", L"" }, diff --git a/src/Styles.c b/src/Styles.c index d13d99850..6510506ae 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -1559,8 +1559,9 @@ void Style_SetLexer(HWND hwnd, PEDITLEXER pLexNew) iValue = clampi(iValue, 1, 12); StringCchPrintf(wchStylesBuffer, COUNTOF(wchStylesBuffer), L"size:%i", iValue); } - //@@@SciCall_SetWhiteSpaceSize(MulDiv(iValue, SciCall_GetZoom(), 100)); // needs update on zoom - SciCall_SetWhiteSpaceSize(iValue); + Globals.iWhiteSpaceSize = iValue; + //SciCall_SetWhiteSpaceSize(iValue); + SciCall_SetWhiteSpaceSize(MulDiv(Globals.iWhiteSpaceSize, SciCall_GetZoom(), 100)); // needs update on zoom // whitespace colors rgb = RGB(0, 0, 0); @@ -2034,6 +2035,7 @@ void Style_HighlightCurrentLine(HWND hwnd, int iHiLitCurLn) { SciCall_SetCaretLineFrame(0); SciCall_SetCaretLineVisibleAlways(false); + //SciCall_SetCaretLineHighlightSubline(false); bool const backgrColor = (iHiLitCurLn == 1); LPCWSTR szValue = GetCurrentStdLexer()->Styles[STY_CUR_LN].szValue; @@ -2045,18 +2047,20 @@ void Style_HighlightCurrentLine(HWND hwnd, int iHiLitCurLn) int alpha = SC_ALPHA_TRANSPARENT; // full translucent if (iHiLitCurLn > 0) { - Style_StrGetAlpha(GetCurrentStdLexer()->Styles[STY_CUR_LN].szValue, &alpha, 80, true); + Style_StrGetAlpha(GetCurrentStdLexer()->Styles[STY_CUR_LN].szValue, &alpha, 80, backgrColor); if (!backgrColor) { int iFrameSize = 0; if (!Style_StrGetSizeInt(szValue, &iFrameSize)) { iFrameSize = 2; } iFrameSize = max_i(1, ScaleIntToDPI(hwnd, iFrameSize)); - SciCall_SetCaretLineFrame(iFrameSize); + Globals.iCaretOutLineFrameSize = iFrameSize; + //SciCall_SetCaretLineFrame(iFrameSize); + SciCall_SetCaretLineFrame(MulDiv(Globals.iCaretOutLineFrameSize, SciCall_GetZoom(), 100)); // needs update on zoom } } - SciCall_SetCaretLineLayer(SC_LAYER_UNDER_TEXT); + SciCall_SetCaretLineLayer(SC_LAYER_UNDER_TEXT); // SC_LAYER_BASE, SC_LAYER_UNDER_TEXT, SC_LAYER_OVER_TEXT SciCall_SetElementColour(SC_ELEMENT_CARET_LINE_BACK, AxRGB(alpha, rgb)); SciCall_SetCaretLineVisibleAlways(iHiLitCurLn > 0); } diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 7f8090d63..9ad9b4504 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -521,6 +521,9 @@ typedef struct GLOBALS_T { int CmdLnFlag_ShellUseSystemMRU; int CmdLnFlag_PrintFileAndLeave; + int iWhiteSpaceSize; + int iCaretOutLineFrameSize; + bool bMinimizedToTray; bool bZeroBasedColumnIndex; bool bZeroBasedCharacterCount;