diff --git a/language/common_res.h b/language/common_res.h index fac99d33d..9ad12bc28 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -173,6 +173,7 @@ #define IDS_MUI_STATUSBAR_POSTFIXES 15061 #define IDS_MUI_RELOADSETTINGS 15062 #define IDS_MUI_RELOADCFGSEX 15063 +#define IDS_MUI_OUT_OFF_OCCMRK 15064 #define IDR_MAINWND 16000 #define IDR_MAINWNDTB 16001 diff --git a/language/np3_de_de/strings_de_de.rc b/language/np3_de_de/strings_de_de.rc index 041c0bd90..bf53f020e 100644 --- a/language/np3_de_de/strings_de_de.rc +++ b/language/np3_de_de/strings_de_de.rc @@ -199,6 +199,7 @@ BEGIN IDS_MUI_URL_OPEN_BROWSER "\nCtrl + Click um die URL im Browser zu öffnen." IDS_MUI_INF_PRSVFILEMODTM "Die Speicherung mit originalem Zeitstempel wurde aktiviert.\nDiese Option gilt nun für die gesamte Sitzung (Datei)!" + IDS_MUI_OUT_OFF_OCCMRK "Es stehen keine weiteren Fundstellen Markierungen/Lesezeichen mehr zur Verfügung!" END STRINGTABLE diff --git a/language/np3_en_us/strings_en_us.rc b/language/np3_en_us/strings_en_us.rc index 864aaf3ff..b153db181 100644 --- a/language/np3_en_us/strings_en_us.rc +++ b/language/np3_en_us/strings_en_us.rc @@ -199,6 +199,7 @@ BEGIN IDS_MUI_URL_OPEN_BROWSER "\nCtrl + Click to open link in browser." IDS_MUI_INF_PRSVFILEMODTM "Preserving original File Modification Timestamp enabled.\nThis option will stay for this session!" + IDS_MUI_OUT_OFF_OCCMRK "Running out of Occurrence Markers (Bookmark/Highligt)!" END STRINGTABLE diff --git a/src/Edit.c b/src/Edit.c index 26972c59f..ae3ee3845 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -4319,16 +4319,6 @@ void EditFocusMarkedLinesCmd(HWND hwnd, bool bCopy, bool bDelete) SciCall_EndUndoAction(); _OBSERVE_NOTIFY_CHANGE_; - if (bDelete) { - for (int m = MARKER_NP3_1; m <= MARKER_NP3_BOOKMARK; ++m) { // all(!) - if (bitmask & (1 << m)) { - if (SciCall_MarkerNext(0, (1 << m)) < 0) { - WordBookMarks[m].in_use = false; - } - } - } - } - SciCall_GotoLine(min_ln(curLn, Sci_GetLastDocLineNumber())); } @@ -7134,7 +7124,6 @@ void EditClearAllBookMarks(HWND hwnd) // 1st press: clear all occurrences marker for (int m = MARKER_NP3_1; m < MARKER_NP3_BOOKMARK; ++m) { SciCall_MarkerDeleteAll(m); - WordBookMarks[m].in_use = false; } } else { // if no occurrences marker found @@ -7789,7 +7778,6 @@ void EditFoldMarkedLineRange(HWND hwnd, bool bHideLines) SciCall_SetFoldLevel(line, SC_FOLDLEVELWHITEFLAG | level); } } - SciCall_FoldAll(FOLD); } } @@ -7804,15 +7792,14 @@ void EditBookMarkLineRange(HWND hwnd) UNUSED(hwnd); // get next free bookmark int marker; - for (marker = MARKER_NP3_1; marker < MARKER_NP3_BOOKMARK; ++marker) { - if (!WordBookMarks[marker].in_use) { - WordBookMarks[marker].in_use = true; - break; - } + for (marker = MARKER_NP3_1; marker < MARKER_NP3_BOOKMARK; ++marker) { // all(!) + if (SciCall_MarkerNext(0, (1 << marker)) < 0) { + break; // found unused + } } - if (marker >= MARKER_NP3_BOOKMARK) { // wrap around - marker = MARKER_NP3_1; - SciCall_MarkerDeleteAll(marker); + if (marker >= MARKER_NP3_BOOKMARK) { + InfoBoxLng(MB_ICONWARNING, L"OutOfOccurrenceMarkers", IDS_MUI_OUT_OFF_OCCMRK); + return; } DocLn line = -1; @@ -8897,7 +8884,6 @@ void EditBookmarkToggle(HWND hwnd, const DocLn ln, const int modifiers) { for (int m = MARKER_NP3_1; m < MARKER_NP3_BOOKMARK; ++m) { if (bitmask & (1 << m)) { SciCall_MarkerDeleteAll(m); - WordBookMarks[m].in_use = false; } } } diff --git a/src/Notepad3.c b/src/Notepad3.c index e996bc8e0..bd68cff10 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -51,16 +51,16 @@ // // ============================================================================ -WORDBOOKMARK_T WordBookMarks[MARKER_NP3_BOOKMARK] = { - /*0*/ {false, L"back:#0000"}, // OCC MARKER - /*1*/ {false, L"back:#FF0000"}, - /*2*/ {false, L"back:#0000FF"}, - /*3*/ {false, L"back:#00FF00"}, - /*4*/ {false, L"back:#FFFF00"}, - /*5*/ {false, L"back:#00E8E8"}, - /*6*/ {false, L"back:#FF00FF"}, - /*7*/ {false, L"back:#FF8F20"}, - /*8*/ {false, L"back:#950095"}}; +LPCWSTR WordBookMarks[MARKER_NP3_BOOKMARK] = { + /*0*/ L"back:#0000", // OCC MARKER + /*1*/ L"back:#FF0000", + /*2*/ L"back:#0000FF", + /*3*/ L"back:#00FF00", + /*4*/ L"back:#FFFF00", + /*5*/ L"back:#00E8E8", + /*6*/ L"back:#FF00FF", + /*7*/ L"back:#FF8F20", + /*8*/ L"back:#950095"}; #define RELAUNCH_ELEVATED_BUF_ARG L"tmpfbuf=" diff --git a/src/Styles.c b/src/Styles.c index a6075e573..0cd172839 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -1845,7 +1845,7 @@ void Style_SetMargin(HWND hwnd, int iStyle, LPCWSTR lpszStyle) for (int m = MARKER_NP3_1; m < MARKER_NP3_BOOKMARK; ++m) { SciCall_MarkerDefine(m, (Settings.FocusViewMarkerMode & FVMM_LN_BACKGR) ? SC_MARK_BACKGROUND : SC_MARK_BOOKMARK); - Style_StrGetColor(WordBookMarks[m].color, BACKGROUND_LAYER, &color); + Style_StrGetColor(WordBookMarks[m], BACKGROUND_LAYER, &color); SciCall_MarkerSetFore(m, color); SciCall_MarkerSetBack(m, color); SciCall_MarkerSetAlpha(m, alpha); // no margin or SC_MARK_BACKGROUND or SC_MARK_UNDERLINE diff --git a/src/TypeDefs.h b/src/TypeDefs.h index d99ec947a..80e8eb9d1 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -270,16 +270,7 @@ typedef enum #define OCCURRENCE_MARKER_BITMASK() (bitmask32_n(MARKER_NP3_BOOKMARK + 1) & ~(1 << MARKER_NP3_OCCURRENCE)) - -typedef struct _wordbookmark_t -{ - bool in_use; - LPCWSTR color; - -} WORDBOOKMARK_T, *PWORDBOOKMARK_T; - -extern WORDBOOKMARK_T WordBookMarks[]; - +extern LPCWSTR WordBookMarks[]; // --------------------------------------------------------------------------