From b45b10385ff3b5a5966514d2d0cdd5f42c2771d3 Mon Sep 17 00:00:00 2001 From: SinghRajenM Date: Fri, 24 Feb 2017 01:23:34 +0530 Subject: [PATCH] Make folding style visible using proper color Fixes #2948, closes #2949 --- .../ScitillaComponent/ScintillaEditView.cpp | 39 +++++++++++-------- .../src/ScitillaComponent/ScintillaEditView.h | 9 +++-- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/PowerEditor/src/ScitillaComponent/ScintillaEditView.cpp b/PowerEditor/src/ScitillaComponent/ScintillaEditView.cpp index c95c9cf3d..2283302d8 100644 --- a/PowerEditor/src/ScitillaComponent/ScintillaEditView.cpp +++ b/PowerEditor/src/ScitillaComponent/ScintillaEditView.cpp @@ -2343,23 +2343,8 @@ void ScintillaEditView::performGlobalStyles() execute(SCI_SETFOLDMARGINCOLOUR, true, foldMarginColor); execute(SCI_SETFOLDMARGINHICOLOUR, true, foldMarginHiColor); - COLORREF foldfgColor = white; - COLORREF foldbgColor = grey; - i = stylers.getStylerIndexByName(TEXT("Fold")); - if (i != -1) - { - Style & style = stylers.getStyler(i); - foldfgColor = style._bgColor; - foldbgColor = style._fgColor; - } - - COLORREF activeFoldFgColor = red; - i = stylers.getStylerIndexByName(TEXT("Fold active")); - if (i != -1) - { - Style & style = stylers.getStyler(i); - activeFoldFgColor = style._fgColor; - } + COLORREF foldfgColor = white, foldbgColor = grey, activeFoldFgColor = red; + getFoldColor(foldfgColor, foldbgColor, activeFoldFgColor); ScintillaViewParams & svp = (ScintillaViewParams &)_pParameter->getSVP(); for (int j = 0 ; j < NB_FOLDER_STATE ; ++j) @@ -3368,3 +3353,23 @@ void ScintillaEditView::setBorderEdge(bool doWithBorderEdge) ::SetWindowLongPtr(_hSelf, GWL_EXSTYLE, exStyle); ::SetWindowPos(_hSelf, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); } + +void ScintillaEditView::getFoldColor(COLORREF& fgColor, COLORREF& bgColor, COLORREF& activeFgColor) +{ + StyleArray & stylers = _pParameter->getMiscStylerArray(); + + int i = stylers.getStylerIndexByName(TEXT("Fold")); + if (i != -1) + { + Style & style = stylers.getStyler(i); + fgColor = style._bgColor; + bgColor = style._fgColor; + } + + i = stylers.getStylerIndexByName(TEXT("Fold active")); + if (i != -1) + { + Style & style = stylers.getStyler(i); + activeFgColor = style._fgColor; + } +} diff --git a/PowerEditor/src/ScitillaComponent/ScintillaEditView.h b/PowerEditor/src/ScitillaComponent/ScintillaEditView.h index ef0af22b3..cbcc6c1f4 100644 --- a/PowerEditor/src/ScitillaComponent/ScintillaEditView.h +++ b/PowerEditor/src/ScitillaComponent/ScintillaEditView.h @@ -266,8 +266,6 @@ public: void saveCurrentPos(); void restoreCurrentPos(); - void saveCurrentFold(); - void restoreCurrentFold(); void beginOrEndSelect(); bool beginEndSelectedIsStarted() const { @@ -347,8 +345,12 @@ public: { display = true; } + + COLORREF foldfgColor = white, foldbgColor = grey, activeFoldFgColor = red; + getFoldColor(foldfgColor, foldbgColor, activeFoldFgColor); + for (int i = 0 ; i < NB_FOLDER_STATE ; ++i) - defineMarker(_markersArray[FOLDER_TYPE][i], _markersArray[style][i], white, grey, white); + defineMarker(_markersArray[FOLDER_TYPE][i], _markersArray[style][i], foldfgColor, foldbgColor, activeFoldFgColor); showMargin(ScintillaEditView::_SC_MARGE_FOLDER, display); }; @@ -943,5 +945,6 @@ protected: std::pair getWordRange(); bool expandWordSelection(); + void getFoldColor(COLORREF& fgColor, COLORREF& bgColor, COLORREF& activeFgColor); };