+ enh: Bookmark margin click

This commit is contained in:
Rainer Kottenhoff 2019-06-02 08:03:58 +02:00
parent e23e8a4877
commit ec76dcd585
8 changed files with 82 additions and 36 deletions

View File

@ -1 +1 @@
2238
2239

View File

@ -3,7 +3,7 @@
<assemblyIdentity
name="Notepad3"
processorArchitecture="*"
version="5.19.531.2238"
version="5.19.602.2239"
type="win32"
/>
<description>Notepad3 ONIGURUMA</description>

View File

@ -8238,6 +8238,30 @@ cpi_enc_t FileVars_GetEncoding(LPFILEVARS lpfv)
}
//=============================================================================
//
// EditBookmarkClick()
//
void EditBookmarkClick(const DocLn ln, const int modifiers)
{
UNUSED(modifiers);
int const bitmask = SciCall_MarkerGet(ln);
if (bitmask & (1 << MARKER_NP3_BOOKMARK))
{
SciCall_MarkerDelete(ln, MARKER_NP3_BOOKMARK); // unset
}
else {
SciCall_MarkerAdd(ln, MARKER_NP3_BOOKMARK); // set
}
if (modifiers & SCMOD_ALT) {
SciCall_GotoLine(ln);
}
}
//==============================================================================
//
// Folding Functions

View File

@ -113,6 +113,7 @@ bool EditAutoCompleteWord(HWND hwnd,bool);
void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition);
void EditGetBookmarkList(HWND hwnd,LPWSTR pszBookMarks,int cchLength);
void EditSetBookmarkList(HWND hwnd,LPCWSTR pszBookMarks);
void EditBookmarkClick(const DocLn ln, const int modifiers);
void EditMarkAllOccurrences(HWND hwnd, bool bForceClear);
void EditHideNotMarkedLineRange(HWND hwnd, bool bHideLines);
void EditSelectionMultiSelectAll();

View File

@ -4691,12 +4691,12 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_EDIT_SELTOMATCHINGBRACE:
{
_BEGIN_UNDO_ACTION_
{
_BEGIN_UNDO_ACTION_
EditSelectToMatchingBrace(Globals.hwndEdit);
_END_UNDO_ACTION_
}
break;
_END_UNDO_ACTION_
}
break;
// Main Bookmark Functions
@ -4718,8 +4718,8 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
SciCall_GotoLine(iNextLine);
SciCall_ScrollCaret();
}
break;
}
break;
case BME_EDIT_BOOKMARKPREV:
{
@ -4739,31 +4739,23 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
SciCall_GotoLine(iNextLine);
SciCall_ScrollCaret();
}
break;
}
break;
case BME_EDIT_BOOKMARKTOGGLE:
{
const DocPos iPos = SciCall_GetCurrentPos();
const DocLn iLine = SciCall_LineFromPosition(iPos);
{
const DocLn ln = Sci_GetCurrentLineNumber();
EditBookmarkClick(ln, 0);
}
break;
int bitmask = SciCall_MarkerGet(iLine);
if (bitmask & (1 << MARKER_NP3_BOOKMARK)) {
SciCall_MarkerDelete(iLine, MARKER_NP3_BOOKMARK); // unset
}
else {
SciCall_MarkerAdd(iLine, MARKER_NP3_BOOKMARK); // set
}
break;
}
case BME_EDIT_BOOKMARKCLEAR:
SciCall_MarkerDeleteAll(MARKER_NP3_BOOKMARK);
break;
case IDM_EDIT_FIND:
if (!IsWindow(Globals.hwndDlgFindReplace)) {
Globals.bFindReplCopySelOrClip = true;
@ -6783,6 +6775,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
case SCN_CALLTIPCLICK:
return 0;
case SCN_MODIFIED:
{
int const iModType = scn->modificationType;
@ -6818,12 +6811,14 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
case SCN_STYLENEEDED: // this event needs SCI_SETLEXER(SCLEX_CONTAINER)
{
EditFinalizeStyling(Globals.hwndEdit, scn->position);
}
break;
case SCN_UPDATEUI:
{
int const iUpd = scn->updated;
@ -6872,6 +6867,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
case SCN_DWELLSTART:
case SCN_DWELLEND:
{
@ -6879,12 +6875,14 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
case SCN_INDICATORCLICK:
{
_s_indic_click_modifiers = scn->modifiers;
}
break;
case SCN_INDICATORRELEASE:
{
if (_s_indic_click_modifiers & SCMOD_CTRL) {
@ -6899,6 +6897,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
case SCN_CHARADDED:
{
int const ich = scn->ch;
@ -6929,6 +6928,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
case SCN_AUTOCCHARDELETED:
if ((Settings.AutoCompleteWords || Settings.AutoCLexerKeyWords))
{
@ -6936,27 +6936,43 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
}
break;
case SCN_NEEDSHOWN:
{
DocLn const iFirstLine = SciCall_LineFromPosition((DocPos)scn->position);
DocLn const iLastLine = SciCall_LineFromPosition((DocPos)(scn->position + scn->length - 1));
DocLn const iFirstLine = SciCall_LineFromPosition(scn->position);
DocLn const iLastLine = SciCall_LineFromPosition(scn->position + scn->length - 1);
for (DocLn i = iFirstLine; i <= iLastLine; ++i) { SciCall_EnsureVisible(i); }
UpdateVisibleUrlIndics();
}
break;
case SCN_MARGINCLICK:
if (scn->margin == MARGIN_SCI_FOLDING) {
EditFoldClick(SciCall_LineFromPosition((DocPos)scn->position), scn->modifiers);
}
switch (scn->margin)
{
case MARGIN_SCI_FOLDING:
EditFoldClick(SciCall_LineFromPosition(scn->position), scn->modifiers);
break;
case MARGIN_SCI_BOOKMRK:
EditBookmarkClick(SciCall_LineFromPosition(scn->position), scn->modifiers);
break;
case MARGIN_SCI_LINENUM:
default:
break;
}
break;
case SCN_MARGINRIGHTCLICK:
break;
// ~~~ Not used in Windows ~~~
// see: CMD_ALTUP / CMD_ALTDOWN
//case SCN_KEY:
// // Also see the corresponding patch in scintilla\src\Editor.cxx
// FoldAltArrow(scn->ch, scn->modifiers);
// break;
// ~~~ Not used in Windows ~~~
// see: CMD_ALTUP / CMD_ALTDOWN
//case SCN_KEY:
// // Also see the corresponding patch in scintilla\src\Editor.cxx
// FoldAltArrow(scn->ch, scn->modifiers);
// break;
case SCN_SAVEPOINTREACHED:
@ -6973,6 +6989,7 @@ static LRESULT _MsgNotifyFromEdit(HWND hwnd, const LPNMHDR pnmh, const SCNotific
UpdateMarginWidth();
break;
case SCN_URIDROPPED:
{
// see WM_DROPFILES

View File

@ -407,6 +407,7 @@ DeclareSciCallV2(SetMarginWidthN, SETMARGINWIDTHN, int, margin, int, pixelWidth)
DeclareSciCallV2(SetMarginMaskN, SETMARGINMASKN, int, margin, int, mask)
DeclareSciCallV2(SetMarginSensitiveN, SETMARGINSENSITIVEN, int, margin, bool, sensitive)
DeclareSciCallV2(SetMarginBackN, SETMARGINBACKN, int, margin, COLORREF, colour)
DeclareSciCallV2(SetMarginCursorN, SETMARGINCURSORN, int, margin, int, cursor)
DeclareSciCallV2(SetFoldMarginColour, SETFOLDMARGINCOLOUR, bool, useSetting, COLORREF, colour)
DeclareSciCallV2(SetFoldMarginHiColour, SETFOLDMARGINHICOLOUR, bool, useSetting, COLORREF, colour)
DeclareSciCallV1(MarkerEnableHighlight, MARKERENABLEHIGHLIGHT, bool, flag)

View File

@ -1616,6 +1616,7 @@ void Style_SetMargin(HWND hwnd, int iStyle, LPCWSTR lpszStyle)
{
if (iStyle == STYLE_LINENUMBER) {
Style_SetStyles(hwnd, iStyle, lpszStyle, false); // line numbers
//~SciCall_SetMarginSensitiveN(MARGIN_SCI_LINENUM, true);
}
COLORREF clrFore = SciCall_StyleGetFore(STYLE_LINENUMBER);
@ -1654,6 +1655,8 @@ void Style_SetMargin(HWND hwnd, int iStyle, LPCWSTR lpszStyle)
SciCall_MarkerSetBack(MARKER_NP3_BOOKMARK, bmkBack);
SciCall_MarkerSetAlpha(MARKER_NP3_BOOKMARK, alpha);
SciCall_SetMarginBackN(MARGIN_SCI_BOOKMRK, clrBack);
SciCall_SetMarginSensitiveN(MARGIN_SCI_BOOKMRK, true);
SciCall_SetMarginCursorN(MARGIN_SCI_BOOKMRK, SC_NP3_CURSORHAND);
// --- Code folding ---

View File

@ -7,8 +7,8 @@
#define SAPPNAME "Notepad3"
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
#define VERSION_REV 531
#define VERSION_BUILD 2238
#define VERSION_REV 602
#define VERSION_BUILD 2239
#define SCINTILLA_VER 415+
#define ONIGURUMA_REGEX_VER 6.9.2
#define VERSION_PATCH ONIGURUMA