mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-11 21:03:05 +08:00
- revert Neil's proposed patch and rely on Scintilla upstream decision for next revision
+ switch to SCI_BRACEHIGHLIGHTINDICATOR API (following Neil's recomendation)
This commit is contained in:
parent
5a34995f96
commit
2c9f47950a
@ -12,7 +12,7 @@
|
||||
namespace Scintilla {
|
||||
#endif
|
||||
|
||||
#define NP3_MATCH_BRACE_RECT_SEL_PATCH 1
|
||||
#undef NP3_MATCH_BRACE_RECT_SEL_PATCH
|
||||
|
||||
struct PrintParameters {
|
||||
int magnification;
|
||||
|
||||
25
src/Edit.c
25
src/Edit.c
@ -172,11 +172,22 @@ HWND EditCreate(HWND hwndParent)
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_HOME + (SCMOD_SHIFT << 16)),SCI_VCHOMEWRAPEXTEND);
|
||||
SendMessage(hwnd,SCI_ASSIGNCMDKEY,(SCK_END + (SCMOD_SHIFT << 16)),SCI_LINEENDWRAPEXTEND);
|
||||
|
||||
// set style
|
||||
// set indicator styles
|
||||
SendMessage(hwnd, SCI_INDICSETOUTLINEALPHA, INDIC_NP3_MARK_OCCURANCE, 220);
|
||||
SendMessage(hwnd, SCI_INDICSETALPHA, INDIC_NP3_MARK_OCCURANCE, 100);
|
||||
SendMessage(hwnd, SCI_INDICSETFORE, INDIC_NP3_MARK_OCCURANCE, 0xff << ((iMarkOccurrences - 1) << 3));
|
||||
SendMessage(hwnd, SCI_INDICSETSTYLE, INDIC_NP3_MARK_OCCURANCE, INDIC_ROUNDBOX);
|
||||
|
||||
SendMessage(hwnd, SCI_INDICSETOUTLINEALPHA, INDIC_NP3_BAD_BRACE, 220);
|
||||
SendMessage(hwnd, SCI_INDICSETALPHA,INDIC_NP3_MATCH_BRACE, 120);
|
||||
SendMessage(hwnd, SCI_INDICSETFORE,INDIC_NP3_MATCH_BRACE, 0xff << (1 << 3)); // overriden by style
|
||||
SendMessage(hwnd, SCI_INDICSETSTYLE,INDIC_NP3_MATCH_BRACE, INDIC_FULLBOX);
|
||||
|
||||
SendMessage(hwnd, SCI_INDICSETOUTLINEALPHA, INDIC_NP3_BAD_BRACE, 220);
|
||||
SendMessage(hwnd, SCI_INDICSETALPHA, INDIC_NP3_BAD_BRACE, 120);
|
||||
SendMessage(hwnd, SCI_INDICSETFORE, INDIC_NP3_BAD_BRACE, 0xff ); // overriden by style
|
||||
SendMessage(hwnd, SCI_INDICSETSTYLE, INDIC_NP3_BAD_BRACE, INDIC_FULLBOX);
|
||||
|
||||
|
||||
// word delimiter handling
|
||||
EditInitWordDelimiter(hwnd);
|
||||
@ -5251,13 +5262,6 @@ void CompleteWord(HWND hwnd, BOOL autoInsert)
|
||||
//
|
||||
void EditMatchBrace(HWND hwnd)
|
||||
{
|
||||
// set style
|
||||
//SendMessage(hwnd, SCI_INDICSETALPHA, 1, 100);
|
||||
//SendMessage(hwnd, SCI_INDICSETFORE, 1, 0xff << ((iMarkOccurrences - 1) << 3));
|
||||
//SendMessage(hwnd, SCI_INDICSETSTYLE, 1, INDIC_ROUNDBOX);
|
||||
//SendMessage(hwnd, SCI_BRACEHIGHLIGHTINDICATOR, 1, 0);
|
||||
//SendMessage(hwnd, SCI_BRACEBADLIGHTINDICATOR, 1, 0);
|
||||
|
||||
int iPos;
|
||||
char c;
|
||||
|
||||
@ -5276,10 +5280,12 @@ void EditMatchBrace(HWND hwnd)
|
||||
int col1 = (int)SendMessage(hwnd, SCI_GETCOLUMN, iPos, 0);
|
||||
int col2 = (int)SendMessage(hwnd, SCI_GETCOLUMN, iBrace2, 0);
|
||||
SendMessage(hwnd, SCI_BRACEHIGHLIGHT, iPos, iBrace2);
|
||||
SendMessage(hwnd, SCI_BRACEHIGHLIGHTINDICATOR, 1, INDIC_NP3_MATCH_BRACE);
|
||||
SendMessage(hwnd, SCI_SETHIGHLIGHTGUIDE, min(col1, col2), 0);
|
||||
}
|
||||
else {
|
||||
SendMessage(hwnd, SCI_BRACEBADLIGHT, iPos, 0);
|
||||
SendMessage(hwnd, SCI_BRACEBADLIGHTINDICATOR, 1, INDIC_NP3_BAD_BRACE);
|
||||
SendMessage(hwnd, SCI_SETHIGHLIGHTGUIDE, 0, 0);
|
||||
}
|
||||
}
|
||||
@ -5293,15 +5299,18 @@ void EditMatchBrace(HWND hwnd)
|
||||
int col1 = (int)SendMessage(hwnd, SCI_GETCOLUMN, iPos, 0);
|
||||
int col2 = (int)SendMessage(hwnd, SCI_GETCOLUMN, iBrace2, 0);
|
||||
SendMessage(hwnd, SCI_BRACEHIGHLIGHT, iPos, iBrace2);
|
||||
SendMessage(hwnd, SCI_BRACEHIGHLIGHTINDICATOR, 1, INDIC_NP3_MATCH_BRACE);
|
||||
SendMessage(hwnd, SCI_SETHIGHLIGHTGUIDE, min(col1, col2), 0);
|
||||
}
|
||||
else {
|
||||
SendMessage(hwnd, SCI_BRACEBADLIGHT, iPos, 0);
|
||||
SendMessage(hwnd, SCI_BRACEBADLIGHTINDICATOR, 1, INDIC_NP3_BAD_BRACE);
|
||||
SendMessage(hwnd, SCI_SETHIGHLIGHTGUIDE, 0, 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
SendMessage(hwnd, SCI_BRACEHIGHLIGHT, (WPARAM)-1, (LPARAM)-1);
|
||||
SendMessage(hwnd, SCI_BRACEHIGHLIGHTINDICATOR, 1, INDIC_NP3_MATCH_BRACE);
|
||||
SendMessage(hwnd, SCI_SETHIGHLIGHTGUIDE, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,7 @@ typedef struct _editfindreplace
|
||||
|
||||
#define INDIC_NP3_MARK_OCCURANCE 1
|
||||
#define INDIC_NP3_MATCH_BRACE 2
|
||||
#define INDIC_NP3_BAD_BRACE 3
|
||||
|
||||
HWND EditCreate(HWND);
|
||||
void EditInitWordDelimiter(HWND);
|
||||
|
||||
67
src/Styles.c
67
src/Styles.c
@ -2998,8 +2998,20 @@ void Style_SetLexer(HWND hwnd,PEDITLEXER pLexNew)
|
||||
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[2+iIdx].iStyle,lexDefault.Styles[2+iIdx].szValue); // brace light
|
||||
Style_SetStyles(hwnd,lexDefault.Styles[3+iIdx].iStyle,lexDefault.Styles[3+iIdx].szValue); // brace bad
|
||||
|
||||
//~Style_SetStyles(hwnd,lexDefault.Styles[2+iIdx].iStyle,lexDefault.Styles[2+iIdx].szValue); // brace light
|
||||
if (Style_StrGetColor(TRUE, lexDefault.Styles[2 + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETFORE, INDIC_NP3_MATCH_BRACE, iValue);
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[2 + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETALPHA, INDIC_NP3_MATCH_BRACE, iValue);
|
||||
|
||||
//~Style_SetStyles(hwnd,lexDefault.Styles[3+iIdx].iStyle,lexDefault.Styles[3+iIdx].szValue); // brace bad
|
||||
if (Style_StrGetColor(TRUE, lexDefault.Styles[3 + iIdx].szValue, &iValue))
|
||||
SendMessage(hwnd, SCI_INDICSETFORE, INDIC_NP3_BAD_BRACE, iValue);
|
||||
if (Style_StrGetAlpha(lexDefault.Styles[3 + 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
|
||||
@ -3923,6 +3935,30 @@ BOOL Style_StrGetColor(BOOL bFore,LPCWSTR lpszStyle,int *rgb)
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// Style_StrGetAlpha()
|
||||
//
|
||||
BOOL Style_StrGetAlpha(LPCWSTR lpszStyle, int *i) {
|
||||
WCHAR tch[256] = { L'\0' };
|
||||
WCHAR *p = StrStrI(lpszStyle, L"alpha:");
|
||||
if (p) {
|
||||
StringCchCopy(tch, COUNTOF(tch), p + CSTRLEN(L"alpha:"));
|
||||
p = StrChr(tch, L';');
|
||||
if (p)
|
||||
*p = L'\0';
|
||||
TrimString(tch);
|
||||
int iValue = 0;
|
||||
int itok = swscanf_s(tch, L"%i", &iValue);
|
||||
if (itok == 1) {
|
||||
*i = min(max(SC_ALPHA_TRANSPARENT, iValue), SC_ALPHA_OPAQUE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// Style_StrGetCase()
|
||||
@ -3951,33 +3987,6 @@ BOOL Style_StrGetCase(LPCWSTR lpszStyle,int *i)
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// Style_StrGetAlpha()
|
||||
//
|
||||
BOOL Style_StrGetAlpha(LPCWSTR lpszStyle,int *i)
|
||||
{
|
||||
WCHAR tch[256] = { L'\0' };
|
||||
WCHAR *p = StrStrI(lpszStyle, L"alpha:");
|
||||
if (p)
|
||||
{
|
||||
StringCchCopy(tch,COUNTOF(tch),p + CSTRLEN(L"alpha:"));
|
||||
p = StrChr(tch, L';');
|
||||
if (p)
|
||||
*p = L'\0';
|
||||
TrimString(tch);
|
||||
int iValue = 0;
|
||||
int itok = swscanf_s(tch,L"%i",&iValue);
|
||||
if (itok == 1)
|
||||
{
|
||||
*i = min(max(SC_ALPHA_TRANSPARENT,iValue),SC_ALPHA_OPAQUE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// Style_SelectFont()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user