Merge pull request #4192 from RaiKoHoff/Dev_Master

Fix margin/bookmark context menu and view
This commit is contained in:
Rainer Kottenhoff 2022-09-28 00:09:25 +02:00 committed by GitHub
commit 7a99dd0ca5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 61 additions and 53 deletions

View File

@ -776,6 +776,7 @@
#define IDM_VIEW_CHGHIST_MARGIN 41059 // SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_MARKERS
#define IDM_VIEW_CHGHIST_DOCTXT 41060 // SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_INDICATORS
#define IDM_VIEW_CHGHIST_ALL 41061 // SC_CHANGE_HISTORY_ENABLED | SC_CHANGE_HISTORY_MARKERS | SC_CHANGE_HISTORY_INDICATORS
#define IDM_VIEW_CHGHIST_TOGGLE_MARGIN 41062
// keep Scintilla(SC) order
#define IDM_SET_RENDER_TECH_GDI 42000 // SC_TECHNOLOGY_DEFAULT(0)

View File

@ -350,12 +350,12 @@ BEGIN
MENUITEM "Zeige Leerzeichen\tCtrl+Shift+8", IDM_VIEW_SHOWBLANKS
MENUITEM "Zeige Zeilenumbrüche\tCtrl+Shift+9", IDM_VIEW_SHOWEOLS
MENUITEM SEPARATOR
POPUP "Change History Marker"
POPUP "Änderungshistorie Markierung"
BEGIN
MENUITEM "Hide All Change Markers", IDM_VIEW_CHGHIST_NONE
MENUITEM "Show in Margin only", IDM_VIEW_CHGHIST_MARGIN
MENUITEM "Show in Document only", IDM_VIEW_CHGHIST_DOCTXT
MENUITEM "Show All Change Markers", IDM_VIEW_CHGHIST_ALL
MENUITEM "Keine Änderungs-Markierung", IDM_VIEW_CHGHIST_NONE
MENUITEM "Zeige Änderungen am Rand", IDM_VIEW_CHGHIST_MARGIN
MENUITEM "Zeige Änderungen im Dokument", IDM_VIEW_CHGHIST_DOCTXT
MENUITEM "Zeige alle Änderungen", IDM_VIEW_CHGHIST_ALL
END
MENUITEM SEPARATOR
MENUITEM "H&yperlink Indikator\tCtrl+Alt+W", IDM_VIEW_HYPERLINKHOTSPOTS
@ -392,6 +392,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Zeilen &Nummern\tCtrl+Shift+N", IDM_VIEW_LINENUMBERS
MENUITEM "&Lesezeichen Rand\tCtrl+Shift+M", IDM_VIEW_BOOKMARK_MARGIN
MENUITEM "Änderungsmarkierungs Rand", IDM_VIEW_CHGHIST_TOGGLE_MARGIN
MENUITEM SEPARATOR
POPUP "Code &Faltung"
BEGIN
@ -590,6 +591,7 @@ BEGIN
MENUITEM "Code Faltung", IDM_VIEW_FOLDING
MENUITEM "Zeilen Nummern", IDM_VIEW_LINENUMBERS
MENUITEM "Lesezeichen Rand", IDM_VIEW_BOOKMARK_MARGIN
MENUITEM "Änderungsmarkierungs Rand", IDM_VIEW_CHGHIST_TOGGLE_MARGIN
END
POPUP "+"
BEGIN

View File

@ -352,10 +352,10 @@ BEGIN
MENUITEM SEPARATOR
POPUP "Change History Marker"
BEGIN
MENUITEM "Hide All Change Markers", IDM_VIEW_CHGHIST_NONE
MENUITEM "Show in Margin only", IDM_VIEW_CHGHIST_MARGIN
MENUITEM "Show in Document only", IDM_VIEW_CHGHIST_DOCTXT
MENUITEM "Show All Change Markers", IDM_VIEW_CHGHIST_ALL
MENUITEM "No Change Markers", IDM_VIEW_CHGHIST_NONE
MENUITEM "Show in Margin only", IDM_VIEW_CHGHIST_MARGIN
MENUITEM "Show in Document only", IDM_VIEW_CHGHIST_DOCTXT
MENUITEM "Show All Change Markers", IDM_VIEW_CHGHIST_ALL
END
MENUITEM SEPARATOR
MENUITEM "&Hyperlink Hotspots\tCtrl+Alt+W", IDM_VIEW_HYPERLINKHOTSPOTS
@ -392,6 +392,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Line &Numbers\tCtrl+Shift+N", IDM_VIEW_LINENUMBERS
MENUITEM "Bookmark &Margin\tCtrl+Shift+M", IDM_VIEW_BOOKMARK_MARGIN
MENUITEM "ChangeHistory Margin", IDM_VIEW_CHGHIST_TOGGLE_MARGIN
MENUITEM SEPARATOR
POPUP "&Folding"
BEGIN
@ -590,6 +591,7 @@ BEGIN
MENUITEM "Folding", IDM_VIEW_FOLDING
MENUITEM "Line Numbers", IDM_VIEW_LINENUMBERS
MENUITEM "Bookmark Margin", IDM_VIEW_BOOKMARK_MARGIN
MENUITEM "ChangeHistory Margin", IDM_VIEW_CHGHIST_TOGGLE_MARGIN
END
POPUP "+"
BEGIN

View File

@ -1508,7 +1508,8 @@ void LoadSettings()
GET_BOOL_VALUE_FROM_INISECTION(MatchBraces, true);
GET_BOOL_VALUE_FROM_INISECTION(AutoCloseTags, false);
GET_INT_VALUE_FROM_INISECTION(HighlightCurrentLine, 1, 0, 2);
GET_INT_VALUE_FROM_INISECTION(ShowChangeHistory, ChgHist_ON | ChgHist_MARGIN, ChgHist_NONE, ChgHist_ALL);
GET_INT_VALUE_FROM_INISECTION(ChangeHistoryMode, ChgHist_ON | ChgHist_MARGIN, ChgHist_NONE, ChgHist_ALL);
GET_BOOL_VALUE_FROM_INISECTION(ChangeHistoryMargin, true);
GET_BOOL_VALUE_FROM_INISECTION(HyperlinkHotspot, true);
GET_BOOL_VALUE_FROM_INISECTION(ShowHypLnkToolTip, false);
GET_INT_VALUE_FROM_INISECTION(ColorDefHotspot, 2, 0, 3);
@ -1964,7 +1965,7 @@ static bool _SaveSettings(bool bForceSaveSettings)
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, MatchBraces);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, AutoCloseTags);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, HighlightCurrentLine);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, ShowChangeHistory);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, ChangeHistoryMode);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, HyperlinkHotspot);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, ColorDefHotspot);
SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, ScrollPastEOF);

View File

@ -8112,7 +8112,7 @@ void EditFoldMarkedLineRange(HWND hwnd, bool bHideLines)
Lexer_SetFoldingAvailability(Style_GetCurrentLexerPtr());
FocusedView.ShowCodeFolding = Settings.ShowCodeFolding;
Lexer_SetFoldingProperties(FocusedView.CodeFoldingAvailable);
Style_SetFolding(hwnd, FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding);
Style_UpdateFoldingMargin(hwnd, FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding);
Sci_ColouriseAll();
EditMarkAllOccurrences(hwnd, true);
} else { // ===== fold lines without marker =====
@ -8120,7 +8120,7 @@ void EditFoldMarkedLineRange(HWND hwnd, bool bHideLines)
FocusedView.CodeFoldingAvailable = true;
FocusedView.ShowCodeFolding = true;
Lexer_SetFoldingFocusedView();
Style_SetFolding(hwnd, true);
Style_UpdateFoldingMargin(hwnd, true);
int const baseLevel = SC_FOLDLEVELBASE;

View File

@ -3658,11 +3658,7 @@ LRESULT MsgContextMenu(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
else {
ScreenToClient(Globals.hwndEdit, &pt);
}
DocPos const iCurrentPos = SciCall_PositionFromPoint(pt.x, pt.y);
DocLn const curLn = SciCall_LineFromPosition(iCurrentPos);
int const bitmask = SciCall_MarkerGet(curLn) & (OCCURRENCE_MARKER_BITMASK() | BITMASK_GEN(int, SC_MARKNUM_HISTORY_REVERTED_TO_ORIGIN, 4));
imenu = (bitmask && ((Settings.FocusViewMarkerMode & FVMM_LN_BACKGR) || !Settings.ShowBookmarkMargin)) ? MNU_MARGIN : MNU_EDIT;
imenu = bMargin ? MNU_MARGIN : MNU_EDIT;
if (imenu == MNU_EDIT) {
// modify configured items
@ -3674,8 +3670,10 @@ LRESULT MsgContextMenu(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
ModifyMenu(hStdCtxMenu, CMD_WEBACTION2, MF_BYCOMMAND | MF_STRING, CMD_WEBACTION2, Settings2.WebTmpl2MenuName);
}
}
// back to screen coordinates for menu display
ClientToScreen(Globals.hwndEdit, &pt);
} break;
case IDC_TOOLBAR:
@ -3718,8 +3716,7 @@ LRESULT MsgContextMenu(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
}
if (imenu != MNU_NONE) {
TrackPopupMenuEx(GetSubMenu(hMenuCtx, imenu),
TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x + 1, pt.y + 1, hwnd, NULL);
TrackPopupMenuEx(GetSubMenu(hMenuCtx, imenu), TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x + 1, pt.y + 1, hwnd, NULL);
}
DestroyMenu(hMenuCtx);
@ -4137,8 +4134,9 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
CheckCmd(hmenu, IDM_VIEW_WORDWRAP, Globals.fvCurFile.bWordWrap);
CheckCmd(hmenu, IDM_VIEW_LONGLINEMARKER, Settings.MarkLongLines);
CheckCmd(hmenu, IDM_VIEW_SHOWINDENTGUIDES, Settings.ShowIndentGuides);
CheckCmd(hmenu, IDM_VIEW_LINENUMBERS, Settings.ShowLineNumbers);
CheckCmd(hmenu, IDM_VIEW_BOOKMARK_MARGIN, Settings.ShowBookmarkMargin);
CheckCmd(hmenu, IDM_VIEW_LINENUMBERS, SciCall_GetMarginWidthN(MARGIN_SCI_LINENUM) > 0);
CheckCmd(hmenu, IDM_VIEW_BOOKMARK_MARGIN, SciCall_GetMarginWidthN(MARGIN_SCI_BOOKMRK) > 0);
CheckCmd(hmenu, IDM_VIEW_CHGHIST_TOGGLE_MARGIN, SciCall_GetMarginWidthN(MARGIN_SCI_CHGHIST) > 0);
CheckCmd(hmenu, IDM_VIEW_CHASING_DOCTAIL, FileWatching.MonitoringLog);
CheckCmd(hmenu, IDM_VIEW_MARKOCCUR_ONOFF, IsMarkOccurrencesEnabled());
@ -4166,7 +4164,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam)
CheckCmd(hmenu, IDM_VIEW_HYPERLINKHOTSPOTS, Settings.HyperlinkHotspot);
int const chState = Settings.ShowChangeHistory;
int const chState = Settings.ChangeHistoryMode;
i = IDM_VIEW_CHGHIST_NONE;
i += ((chState & ChgHist_ON) && (chState & ChgHist_MARGIN)) ? 1 : 0;
i += ((chState & ChgHist_ON) && (chState & ChgHist_DOCTXT)) ? 2 : 0;
@ -5901,7 +5899,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
case IDM_VIEW_FOLDING:
Settings.ShowCodeFolding = !Settings.ShowCodeFolding;
FocusedView.ShowCodeFolding = Settings.ShowCodeFolding;
Style_SetFolding(Globals.hwndEdit, FocusedView.ShowCodeFolding);
Style_UpdateFoldingMargin(Globals.hwndEdit, FocusedView.ShowCodeFolding);
if (!FocusedView.ShowCodeFolding) {
EditToggleFolds(EXPAND, true);
}
@ -5957,29 +5955,31 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
int const chgHistState = SciCall_GetChangeHistory() & ChgHist_ON;
switch (set) {
case 0:
Settings.ShowChangeHistory = chgHistState & ~(ChgHist_MARGIN | ChgHist_DOCTXT);
Settings.ChangeHistoryMode = chgHistState & ~(ChgHist_MARGIN | ChgHist_DOCTXT);
break;
case 1:
Settings.ShowChangeHistory = (chgHistState | ChgHist_MARGIN) & ~ChgHist_DOCTXT;
Settings.ChangeHistoryMode = (chgHistState | ChgHist_MARGIN) & ~ChgHist_DOCTXT;
break;
case 2:
Settings.ShowChangeHistory = (chgHistState | ChgHist_DOCTXT) & ~ChgHist_MARGIN;
Settings.ChangeHistoryMode = (chgHistState | ChgHist_DOCTXT) & ~ChgHist_MARGIN;
break;
case 3:
Settings.ShowChangeHistory = chgHistState | (ChgHist_MARGIN | ChgHist_DOCTXT);
Settings.ChangeHistoryMode = chgHistState | (ChgHist_MARGIN | ChgHist_DOCTXT);
break;
default:
break;
}
SciCall_SetChangeHistory(Settings.ShowChangeHistory);
Style_SetChangeHistory(Globals.hwndEdit, ((Settings.ShowChangeHistory & ChgHist_ON) && (Settings.ShowChangeHistory & ChgHist_MARGIN)));
SciCall_SetChangeHistory(Settings.ChangeHistoryMode);
Style_UpdateChangeHistoryMargin(Globals.hwndEdit);
UpdateMargins(true);
break;
}
break;
case IDM_VIEW_CHGHIST_TOGGLE_MARGIN:
Settings.ChangeHistoryMargin = !Settings.ChangeHistoryMargin;
UpdateMargins(true);
break;
case IDM_VIEW_HYPERLINKHOTSPOTS:
Settings.HyperlinkHotspot = !Settings.HyperlinkHotspot;
@ -10050,9 +10050,9 @@ void UpdateMargins(const bool bForce)
} else {
SciCall_SetMarginWidthN(MARGIN_SCI_LINENUM, 0);
}
Style_SetBookmark(Globals.hwndEdit, Settings.ShowBookmarkMargin);
Style_SetChangeHistory(Globals.hwndEdit, ((Settings.ShowChangeHistory & ChgHist_ON) && (Settings.ShowChangeHistory & ChgHist_MARGIN)));
Style_SetFolding(Globals.hwndEdit, (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding));
Style_UpdateBookmarkMargin(Globals.hwndEdit);
Style_UpdateChangeHistoryMargin(Globals.hwndEdit);
Style_UpdateFoldingMargin(Globals.hwndEdit, (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding));
bShowLnNums = Settings.ShowLineNumbers;
prevLineCount = currLineCount;
}
@ -10132,7 +10132,7 @@ void UndoRedoRecordingStart()
_UndoRedoActionMap(-1, NULL);
SciCall_SetUndoCollection(true);
SetSavePoint();
SciCall_SetChangeHistory(SC_CHANGE_HISTORY_ENABLED | Settings.ShowChangeHistory);
SciCall_SetChangeHistory(SC_CHANGE_HISTORY_ENABLED | Settings.ChangeHistoryMode);
UpdateMargins(true);
}

View File

@ -1586,10 +1586,10 @@ void Style_SetLexer(HWND hwnd, PEDITLEXER pLexNew)
Style_HighlightCurrentLine(hwnd, Settings.HighlightCurrentLine);
// bookmark line or marker
Style_SetBookmark(hwnd, Settings.ShowBookmarkMargin);
Style_UpdateBookmarkMargin(hwnd);
// Change History
Style_SetChangeHistory(Globals.hwndEdit, ((Settings.ShowChangeHistory & ChgHist_ON) && (Settings.ShowChangeHistory & ChgHist_MARGIN)));
Style_UpdateChangeHistoryMargin(Globals.hwndEdit);
// Hyperlink (URL) indicators
Style_SetUrlHotSpot(hwnd);
@ -2032,29 +2032,30 @@ static int _GetMarkerMarginWidth(HWND hwnd)
//=============================================================================
//
// Style_SetFolding()
// Style_UpdateFoldingMargin()
//
void Style_SetFolding(HWND hwnd, bool bShowMargin)
void Style_UpdateFoldingMargin(HWND hwnd, bool bShowMargin)
{
SciCall_SetMarginWidthN(MARGIN_SCI_FOLDING, (bShowMargin ? _GetMarkerMarginWidth(hwnd) : 0));
}
//=============================================================================
//
// Style_SetBookmark()
// Style_UpdateBookmarkMargin()
//
void Style_SetBookmark(HWND hwnd, bool bShowMargin)
void Style_UpdateBookmarkMargin(HWND hwnd)
{
SciCall_SetMarginWidthN(MARGIN_SCI_BOOKMRK, (bShowMargin ? _GetMarkerMarginWidth(hwnd) + 4 : 0));
SciCall_SetMarginWidthN(MARGIN_SCI_BOOKMRK, (Settings.ShowBookmarkMargin ? _GetMarkerMarginWidth(hwnd) + 4 : 0));
}
//=============================================================================
//
// Style_SetChangeHistory()
// Style_UpdateChangeHistoryMargin()
//
void Style_SetChangeHistory(HWND hwnd, bool bShowMargin)
void Style_UpdateChangeHistoryMargin(HWND hwnd)
{
bool const bShowMargin = Settings.ChangeHistoryMargin && ((Settings.ChangeHistoryMode & ChgHist_ON) && (Settings.ChangeHistoryMode & ChgHist_MARGIN));
SciCall_SetMarginWidthN(MARGIN_SCI_CHGHIST, (bShowMargin ? _GetMarkerMarginWidth(hwnd) + 4 : 0));
}
@ -2159,7 +2160,7 @@ void Style_SetMargin(HWND hwnd, LPCWSTR lpszStyle) /// iStyle == STYLE_LINENUMBE
//SciCall_MarkerSetBack(SC_MARKNUM_HISTORY_REVERTED_TO_ORIGIN, clrMarginBack);
//SciCall_MarkerSetBack(SC_MARKNUM_HISTORY_SAVED, clrMarginBack);
//SciCall_MarkerSetBack(SC_MARKNUM_HISTORY_REVERTED_TO_MODIFIED, clrMarginBack);
Style_SetChangeHistory(Globals.hwndEdit, ((Settings.ShowChangeHistory & ChgHist_ON) && (Settings.ShowChangeHistory & ChgHist_MARGIN)));
Style_UpdateChangeHistoryMargin(Globals.hwndEdit);
// --- Code folding ---
SciCall_SetMarginBackN(MARGIN_SCI_FOLDING, clrMarginBack);
@ -2227,8 +2228,8 @@ void Style_SetMargin(HWND hwnd, LPCWSTR lpszStyle) /// iStyle == STYLE_LINENUMBE
}
// set width
Style_SetBookmark(hwnd, Settings.ShowBookmarkMargin);
Style_SetFolding(hwnd, (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding));
Style_UpdateBookmarkMargin(hwnd);
Style_UpdateFoldingMargin(hwnd, (FocusedView.CodeFoldingAvailable && FocusedView.ShowCodeFolding));
}

View File

@ -63,9 +63,9 @@ void Style_SetUrlHotSpot(HWND hwnd);
void Style_SetInvisible(HWND hwnd, bool);
//void Style_SetReadonly(HWND hwnd, bool);
void Style_HighlightCurrentLine(HWND hwnd, int);
void Style_SetFolding(HWND hwnd, bool bShowMargin);
void Style_SetBookmark(HWND hwnd, bool bShowMargin);
void Style_SetChangeHistory(HWND hwnd, bool bShowMargin);
void Style_UpdateFoldingMargin(HWND hwnd, bool bShowMargin);
void Style_UpdateBookmarkMargin(HWND hwnd);
void Style_UpdateChangeHistoryMargin(HWND hwnd);
void Style_SetMargin(HWND hwnd, LPCWSTR lpszStyle);
bool Style_SetLexerFromFile(HWND hwnd,const HPATHL hpath);
bool Style_MaybeBinaryFile(HWND hwnd, const HPATHL hpath);

View File

@ -568,7 +568,8 @@ typedef struct SETTINGS_T {
bool MatchBraces;
bool AutoCloseTags;
int HighlightCurrentLine;
int ShowChangeHistory;
int ChangeHistoryMode;
bool ChangeHistoryMargin;
bool HyperlinkHotspot;
int ColorDefHotspot;
bool ScrollPastEOF;

View File

@ -78,7 +78,7 @@
#if defined(_MSC_VER)
#if (_MSC_VER == 1933)
#if (_MSC_FULL_VER >= 193331630)
#define VER_CPL MS Visual C++ 2022 v17.3.4
#define VER_CPL MS Visual C++ 2022 v17.3.(4-5)
#elif (_MSC_FULL_VER >= 193331629)
#define VER_CPL MS Visual C++ 2022 v17.3.(0-3)
#endif