mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ fix: customize scheme's base font size (HyperLink style)
This commit is contained in:
parent
911a3fe234
commit
e8cd86b777
@ -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))
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
@ -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 } };
|
||||
|
||||
|
||||
|
||||
20
src/Styles.c
20
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));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user