diff --git a/src/StyleLexers/EditLexer.h b/src/StyleLexers/EditLexer.h index 062061365..18dba960a 100644 --- a/src/StyleLexers/EditLexer.h +++ b/src/StyleLexers/EditLexer.h @@ -86,6 +86,7 @@ typedef enum { STY_BOOK_MARK = 12, STY_MARK_OCC = 13, STY_URL_HOTSPOT = 14, + STY_IME_COLOR = 15, STY_INVISIBLE = 16, STY_READONLY = 17 @@ -95,10 +96,10 @@ typedef enum { } LexDefaultStyles; -#define _STYLE_GETSTYLEID(ID) ((int)((STYLE_LASTPREDEFINED + 1) + ID)) -#define Style_GetHotspotStyleID() _STYLE_GETSTYLEID(STY_URL_HOTSPOT) -#define Style_GetInvisibleStyleID() _STYLE_GETSTYLEID(STY_INVISIBLE) -#define Style_GetReadonlyStyleID() _STYLE_GETSTYLEID(STY_READONLY) +#define _STYLE_GETSTYLEID(ID) ((STYLE_LASTPREDEFINED + 1) + ID) +#define Style_GetHotspotStyleID() ((int)_STYLE_GETSTYLEID(STY_URL_HOTSPOT)) +#define Style_GetInvisibleStyleID() ((int)_STYLE_GETSTYLEID(STY_INVISIBLE)) +#define Style_GetReadonlyStyleID() ((int)_STYLE_GETSTYLEID(STY_READONLY)) // ----------------------------------------------------------------------------- diff --git a/src/StyleLexers/styleLexStandard.c b/src/StyleLexers/styleLexStandard.c index 53e4d011e..2923d6eb2 100644 --- a/src/StyleLexers/styleLexStandard.c +++ b/src/StyleLexers/styleLexStandard.c @@ -41,16 +41,16 @@ SCLEX_NULL, IDS_LEX_DEF_TXT, L"Default Text", L"txt; text; wtx; log; asc; doc", /* 3 */ { {STYLE_BRACEBAD}, IDS_LEX_STD_BRACE_FAIL, L"Matching Braces Error (Indicator)", L"fore:#FF0080; alpha:140; alpha2:140; indic_roundbox", L"" }, /* 4 */ { {STYLE_CONTROLCHAR}, IDS_LEX_STD_CTRL_CHAR, L"Control Characters (Font)", L"size:-1", L"" }, /* 5 */ { {STYLE_INDENTGUIDE}, IDS_LEX_STD_INDENT, L"Indentation Guide (Color)", L"fore:#A0A0A0", L"" }, - /* 6 */ { {SCI_SETSELFORE+SCI_SETSELBACK}, IDS_LEX_STD_SEL, L"Selected Text (Colors)", L"back:#4040FF; eolfilled; alpha:80", L"" }, - /* 7 */ { {SCI_SETWHITESPACEFORE+SCI_SETWHITESPACEBACK+SCI_SETWHITESPACESIZE}, IDS_LEX_STD_WSPC, L"Whitespace (Colors, Size 0-12)", L"fore:#FF4000", L"" }, - /* 8 */ { {SCI_SETCARETLINEBACK}, IDS_LEX_STD_LN_BACKGR, L"Current Line Background (Color)", L"back:#FFFF00; alpha:50", L"" }, - /* 9 */ { {SCI_SETCARETFORE+SCI_SETCARETWIDTH}, IDS_LEX_STD_CARET, L"Caret (Color, Size 1-3)", L"", L"" }, - /* 10 */ { {SCI_SETEDGECOLOUR}, IDS_LEX_STD_LONG_LN, L"Long Line Marker (Colors)", L"fore:#FFC000", L"" }, - /* 11 */ { {SCI_SETEXTRAASCENT+SCI_SETEXTRADESCENT}, IDS_LEX_STD_X_SPC, L"Extra Line Spacing (Size)", L"size:2", L"" }, - /* 12 */ { {SCI_FOLDALL+SCI_MARKERSETALPHA}, IDS_LEX_STD_BKMRK, L"Bookmarks and Folding (Colors, Size)", L"size:+2; fore:#000000; back:#808080; alpha:80", L"" }, - /* 13 */ { {SCI_MARKERSETBACK+SCI_MARKERSETALPHA}, IDS_LEX_STR_63262, L"Mark Occurrences (Indicator)", L"alpha:100; alpha2:100; indic_roundbox", L"" }, - /* 14 */ { {SCI_SETHOTSPOTACTIVEFORE}, IDS_LEX_STR_63264, L"Hyperlink Hotspots", L"italic; fore:#0000FF", L"" }, - /* 15 */ { {SCI_INDICSETFORE}, IDS_LEX_STR_63352, L"Inline-IME Color", L"fore:#00AA00", L"" }, + /* 6 */ { {_STYLE_GETSTYLEID(STY_SEL_TXT)}, IDS_LEX_STD_SEL, L"Selected Text (Colors)", L"back:#4040FF; eolfilled; alpha:80", L"" }, + /* 7 */ { {_STYLE_GETSTYLEID(STY_WHITESPACE)}, IDS_LEX_STD_WSPC, L"Whitespace (Colors, Size 0-12)", L"fore:#FF4000", L"" }, + /* 8 */ { {_STYLE_GETSTYLEID(STY_CUR_LN_BCK)}, IDS_LEX_STD_LN_BACKGR, L"Current Line Background (Color)", L"back:#FFFF00; alpha: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"" }, + /* 12 */ { {_STYLE_GETSTYLEID(STY_BOOK_MARK)}, IDS_LEX_STD_BKMRK, L"Bookmarks and Folding (Colors, Size)", L"size:+2; fore:#000000; back:#808080; alpha:80", L"" }, + /* 13 */ { {_STYLE_GETSTYLEID(STY_MARK_OCC)}, IDS_LEX_STR_63262, L"Mark Occurrences (Indicator)", L"alpha:100; alpha2:100; indic_roundbox", L"" }, + /* 14 */ { {_STYLE_GETSTYLEID(STY_URL_HOTSPOT)}, IDS_LEX_STR_63264, L"Hyperlink Hotspots", L"italic; fore:#0000FF", L"" }, + /* 15 */ { {_STYLE_GETSTYLEID(STY_IME_COLOR)}, IDS_LEX_STR_63352, L"Inline-IME Color", L"fore:#00AA00", L"" }, EDITLEXER_SENTINEL } }; @@ -64,16 +64,16 @@ SCLEX_NULL, IDS_LEX_STR_63266, L"2nd Default Text", L"txt; text; wtx; log; asc; /* 3 */ { {STYLE_BRACEBAD}, IDS_LEX_2ND_BRACE_FAIL, L"2nd Matching Braces Error (Indicator)", L"fore:#FF0080; alpha:140; alpha2:220; indic_roundbox", L"" }, /* 4 */ { {STYLE_CONTROLCHAR}, IDS_LEX_2ND_CTRL_CHAR, L"2nd Control Characters (Font)", L"size:-1", L"" }, /* 5 */ { {STYLE_INDENTGUIDE}, IDS_LEX_2ND_INDENT, L"2nd Indentation Guide (Color)", L"fore:#A0A0A0", L"" }, - /* 6 */ { {SCI_SETSELFORE + SCI_SETSELBACK}, IDS_LEX_2ND_SEL, L"2nd Selected Text (Colors)", L"eolfilled", L"" }, - /* 7 */ { {SCI_SETWHITESPACEFORE + SCI_SETWHITESPACEBACK + SCI_SETWHITESPACESIZE}, IDS_LEX_2ND_WSPC, L"2nd Whitespace (Colors, Size 0-12)", L"fore:#FF4000", L"" }, - /* 8 */ { {SCI_SETCARETLINEBACK}, IDS_LEX_2ND_LN_BACKGR, L"2nd Current Line Background (Color)", L"back:#FFFF00; alpha:50", L"" }, - /* 9 */ { {SCI_SETCARETFORE + SCI_SETCARETWIDTH}, IDS_LEX_2ND_CARET, L"2nd Caret (Color, Size 1-3)", L"", L"" }, - /* 10 */ { {SCI_SETEDGECOLOUR}, IDS_LEX_2ND_LONG_LN, L"2nd Long Line Marker (Colors)", L"fore:#FFC000", L"" }, - /* 11 */ { {SCI_SETEXTRAASCENT + SCI_SETEXTRADESCENT}, IDS_LEX_2ND_X_SPC, L"2nd Extra Line Spacing (Size)", L"", L"" }, - /* 12 */ { {SCI_FOLDALL + SCI_MARKERSETALPHA}, IDS_LEX_2ND_BKMRK, L"2nd Bookmarks and Folding (Colors, Size)", L"size:+2; fore:#000000; back:#808080; alpha:80; charset:2; case:U", L"" }, - /* 13 */ { {SCI_MARKERSETBACK + SCI_MARKERSETALPHA}, IDS_LEX_STR_63263, L"2nd Mark Occurrences (Indicator)", L"fore:#0x000000; alpha:100; alpha2:220; indic_box", L"" }, - /* 14 */ { {SCI_SETHOTSPOTACTIVEFORE}, IDS_LEX_STR_63265, L"2nd Hyperlink Hotspots", L"bold; fore:#FF0000", L"" }, - /* 15 */ { {SCI_INDICSETFORE}, IDS_LEX_STR_63353, L"2nd Inline-IME Color", L"fore:#FF0000", L"" }, + /* 6 */ { {_STYLE_GETSTYLEID(STY_SEL_TXT)}, IDS_LEX_2ND_SEL, L"2nd Selected Text (Colors)", L"eolfilled", L"" }, + /* 7 */ { {_STYLE_GETSTYLEID(STY_WHITESPACE)}, IDS_LEX_2ND_WSPC, L"2nd Whitespace (Colors, Size 0-12)", L"fore:#FF4000", L"" }, + /* 8 */ { {_STYLE_GETSTYLEID(STY_CUR_LN_BCK)}, IDS_LEX_2ND_LN_BACKGR, L"2nd Current Line Background (Color)", L"back:#FFFF00; alpha: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"", L"" }, + /* 12 */ { {_STYLE_GETSTYLEID(STY_BOOK_MARK)}, IDS_LEX_2ND_BKMRK, L"2nd Bookmarks and Folding (Colors, Size)", L"size:+2; fore:#000000; back:#808080; alpha:80; charset:2; case:U", L"" }, + /* 13 */ { {_STYLE_GETSTYLEID(STY_MARK_OCC)}, IDS_LEX_STR_63263, L"2nd Mark Occurrences (Indicator)", L"fore:#0x000000; alpha:100; alpha2:220; indic_box", L"" }, + /* 14 */ { {_STYLE_GETSTYLEID(STY_URL_HOTSPOT)}, IDS_LEX_STR_63265, L"2nd Hyperlink Hotspots", L"bold; fore:#FF0000", L"" }, + /* 15 */ { {_STYLE_GETSTYLEID(STY_IME_COLOR)}, IDS_LEX_STR_63353, L"2nd Inline-IME Color", L"fore:#FF0000", L"" }, EDITLEXER_SENTINEL } }; diff --git a/src/Styles.c b/src/Styles.c index ac0c37812..d2deac47e 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -47,6 +47,9 @@ #include "Styles.h" + +#define INITIAL_BASE_FONT_SIZE (IsFullHDOrHigher(-1, -1) ? 11.0f : 10.0f) + extern const int g_FontQuality[4]; extern bool g_bCodeFoldingAvailable; @@ -239,7 +242,10 @@ float Style_GetCurrentFontSize() // void Style_Load() { - _SetBaseFontSize(IsFullHDOrHigher(-1, -1) ? 11.0f : 10.0f); + + float const fBFS = INITIAL_BASE_FONT_SIZE; + _SetBaseFontSize(fBFS); + _SetCurrentFontSize(fBFS); size_t const len = NUMLEXERS * AVG_NUM_OF_STYLES_PER_LEXER * 100; WCHAR *pIniSection = AllocMem(len * sizeof(WCHAR), HEAP_ZERO_MEMORY); @@ -541,8 +547,6 @@ void Style_SetLexer(HWND hwnd, PEDITLEXER pLexNew) s_pLexCurrent = GetCurrentStdLexer(); } - const WCHAR* const wchStandardStyleStrg = s_pLexCurrent->Styles[STY_DEFAULT].szValue; - // Lexer SendMessage(hwnd, SCI_SETLEXER, pLexNew->lexerID, 0); @@ -620,9 +624,10 @@ void Style_SetLexer(HWND hwnd, PEDITLEXER pLexNew) //~Style_SetACPfromCharSet(hwnd); // --- apply/init default style --- - float const fBFS = IsFullHDOrHigher(-1, -1) ? 11.0f : 10.0f; + float const fBFS = INITIAL_BASE_FONT_SIZE; _SetBaseFontSize(fBFS); _SetCurrentFontSize(fBFS); + const WCHAR* const wchStandardStyleStrg = s_pLexCurrent->Styles[STY_DEFAULT].szValue; Style_SetStyles(hwnd, STYLE_DEFAULT, wchStandardStyleStrg, true); // --- apply current scheme specific settings to default style --- @@ -1095,8 +1100,7 @@ void Style_SetUrlHotSpot(HWND hwnd, bool bHotSpot) } } else { - const WCHAR* const lpszStyleHotSpot = s_pLexCurrent->Styles[STY_DEFAULT].szValue; - Style_SetStyles(hwnd, cHotSpotStyleID, lpszStyleHotSpot, false); + Style_SetStyles(hwnd, cHotSpotStyleID, L"", false); // uses Styles[STY_DEFAULT] SendMessage(hwnd, SCI_STYLESETHOTSPOT, cHotSpotStyleID, (LPARAM)false); } @@ -2374,7 +2378,7 @@ bool Style_SelectFont(HWND hwnd,LPWSTR lpszStyle,int cchStyle, LPCWSTR sLexerNam // is "size:" definition relative ? bool const bRelFontSize = (!StrStrI(lpszStyle, L"size:") || StrStrI(lpszStyle, L"size:+") || StrStrI(lpszStyle, L"size:-")); - float const fBFS = IsFullHDOrHigher(-1, -1) ? 11.0f : 10.0f; + float const fBFS = INITIAL_BASE_FONT_SIZE; float const fBaseFontSize = (bGlobalDefaultStyle ? fBFS : (bCurrentDefaultStyle ? Style_GetBaseFontSize() : Style_GetCurrentFontSize())); // Font Height @@ -2818,8 +2822,8 @@ void Style_SetStyles(HWND hwnd, int iStyle, LPCWSTR lpszStyle, bool bInitDefault if (bInitDefault) { _SetBaseFontSize(fBaseFontSize); } + _SetCurrentFontSize(fBaseFontSize); } - _SetCurrentFontSize(fBaseFontSize); } else if (bInitDefault) { SendMessage(hwnd, SCI_STYLESETSIZEFRACTIONAL, STYLE_DEFAULT, (LPARAM)ScaleFractionalFontSize(fBaseFontSize));