aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaDoc.html24
-rw-r--r--doc/ScintillaHistory.html3
-rw-r--r--include/Scintilla.h1
-rw-r--r--include/Scintilla.iface1
-rw-r--r--include/ScintillaTypes.h1
-rw-r--r--src/EditView.cxx6
6 files changed, 29 insertions, 7 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index 531fca5aa..511632937 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -128,7 +128,7 @@
<h1>Scintilla Documentation</h1>
- <p>Last edited 17 July 2021 NH</p>
+ <p>Last edited 29 July 2021 NH</p>
<p style="background:#90F0C0">Scintilla 5 has moved the lexers from Scintilla into a new
<a href="Lexilla.html">Lexilla</a> project.<br />
@@ -2395,8 +2395,8 @@ struct Sci_TextToFind {
<b id="SCI_SETWHITESPACEBACK">SCI_SETWHITESPACEBACK(bool useSetting, <a class="jump" href="#colour">colour</a> back)</b><br />
By default, the colour of visible white space is determined by the lexer in use. The
foreground and/or background colour of all visible white space can be set globally, overriding
- the lexer's colours with <a href="#SCI_SETELEMENTCOLOUR"><code>SC_ELEMENT_WHITE_SPACE</code></a>
- and <a href="#SCI_SETELEMENTCOLOUR"><code>SC_ELEMENT_WHITE_SPACE_BACK</code></a>.
+ the lexer's colours with <a class="element" href="#SCI_SETELEMENTCOLOUR"><code>SC_ELEMENT_WHITE_SPACE</code></a>
+ and <a class="element" href="#SCI_SETELEMENTCOLOUR"><code>SC_ELEMENT_WHITE_SPACE_BACK</code></a>.
.<br />
<code>SCI_SETWHITESPACEFORE</code> and <code>SCI_SETWHITESPACEBACK</code> also
change the white space colours but the element APIs are preferred with <code>SC_ELEMENT_WHITE_SPACE</code>
@@ -3496,6 +3496,14 @@ struct Sci_TextToFind {
<td></td>
<td>Background colour of active hot spot</td>
</tr>
+ <tr class="section">
+ <th align="left"><code>SC_ELEMENT_FOLD_LINE</code></th>
+ <td>80</td>
+ <td>Translucent</td>
+ <td>All</td>
+ <td></td>
+ <td>Colour of fold lines</td>
+ </tr>
</tbody>
</table>
@@ -7007,6 +7015,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
<a class="message" href="#SCI_SETAUTOMATICFOLD">SCI_SETAUTOMATICFOLD(int automaticFold)</a><br />
<a class="message" href="#SCI_GETAUTOMATICFOLD">SCI_GETAUTOMATICFOLD &rarr; int</a><br />
<a class="message" href="#SCI_SETFOLDFLAGS">SCI_SETFOLDFLAGS(int flags)</a><br />
+ <a class="element" href="#SC_ELEMENT_FOLD_LINE">SC_ELEMENT_FOLD_LINE : colouralpha</a><br />
<a class="message" href="#SCI_GETLASTCHILD">SCI_GETLASTCHILD(line line, int level) &rarr; line</a><br />
<a class="message" href="#SCI_GETFOLDPARENT">SCI_GETFOLDPARENT(line line) &rarr; line</a><br />
<a class="message" href="#SCI_SETFOLDEXPANDED">SCI_SETFOLDEXPANDED(line line, bool
@@ -7086,9 +7095,14 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
update to match your changes.
<p><b id="SCI_SETFOLDFLAGS">SCI_SETFOLDFLAGS(int flags)</b><br />
+ <b id="SC_ELEMENT_FOLD_LINE">SC_ELEMENT_FOLD_LINE : colouralpha</b><br />
In addition to showing markers in the folding margin, you can indicate folds to the user by
- drawing lines in the text area. The lines are drawn in the foreground colour set for <a
- class="message" href="#StyleDefinition"><code>STYLE_DEFAULT</code></a>. Bits set in
+ drawing lines in the text area.
+ The lines are drawn in the <a class="element" href="#SCI_SETELEMENTCOLOUR"><code>SC_ELEMENT_FOLD_LINE</code></a>
+ colour if set.
+ If it is not set then the foreground colour set for <a
+ class="message" href="#StyleDefinition"><code>STYLE_DEFAULT</code></a> is used.
+ Bits set in
<code class="parameter">flags</code> determine where folding lines are drawn:<br />
</p>
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 1b88ebab1..f0c6ded0b 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -575,6 +575,9 @@
Released 26 July 2021.
</li>
<li>
+ Add SC_ELEMENT_FOLD_LINE to set the colour of fold lines.
+ </li>
+ <li>
Fix display of fold lines when wrapped so they are only drawn once per line, not on each subline.
</li>
<li>
diff --git a/include/Scintilla.h b/include/Scintilla.h
index 97fbd3be0..3af22dfc5 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -291,6 +291,7 @@ typedef sptr_t (*SciFnDirectStatus)(sptr_t ptr, unsigned int iMessage, uptr_t wP
#define SC_ELEMENT_WHITE_SPACE_BACK 61
#define SC_ELEMENT_HOT_SPOT_ACTIVE 70
#define SC_ELEMENT_HOT_SPOT_ACTIVE_BACK 71
+#define SC_ELEMENT_FOLD_LINE 80
#define SCI_SETELEMENTCOLOUR 2753
#define SCI_GETELEMENTCOLOUR 2754
#define SCI_RESETELEMENTCOLOUR 2755
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index cc7dedf36..d8a1bdec1 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -697,6 +697,7 @@ val SC_ELEMENT_WHITE_SPACE=60
val SC_ELEMENT_WHITE_SPACE_BACK=61
val SC_ELEMENT_HOT_SPOT_ACTIVE=70
val SC_ELEMENT_HOT_SPOT_ACTIVE_BACK=71
+val SC_ELEMENT_FOLD_LINE=80
# Set the colour of an element. Translucency (alpha) may or may not be significant
# and this may depend on the platform. The alpha byte should commonly be 0xff for opaque.
diff --git a/include/ScintillaTypes.h b/include/ScintillaTypes.h
index 830ccadba..ab4a55131 100644
--- a/include/ScintillaTypes.h
+++ b/include/ScintillaTypes.h
@@ -180,6 +180,7 @@ enum class Element {
WhiteSpaceBack = 61,
HotSpotActive = 70,
HotSpotActiveBack = 71,
+ FoldLine = 80,
};
enum class Layer {
diff --git a/src/EditView.cxx b/src/EditView.cxx
index f4d37e221..7eea729fd 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -2289,19 +2289,21 @@ static void DrawFoldLines(Surface *surface, const EditModel &model, const ViewSt
const FoldLevel levelNext = model.pdoc->GetFoldLevel(line + 1);
if (LevelIsHeader(level) &&
(LevelNumber(level) < LevelNumber(levelNext))) {
+ const ColourRGBA foldLineColour = vsDraw.ElementColour(Element::FoldLine).value_or(
+ vsDraw.styles[StyleDefault].fore);
// Paint the line above the fold
if ((subLine == 0) &&
((expanded && (FlagSet(model.foldFlags, FoldFlag::LineBeforeExpanded)))
||
(!expanded && (FlagSet(model.foldFlags, FoldFlag::LineBeforeContracted))))) {
- surface->FillRectangleAligned(Side(rcLine, Edge::top, 1.0), Fill(vsDraw.styles[StyleDefault].fore));
+ surface->FillRectangleAligned(Side(rcLine, Edge::top, 1.0), foldLineColour);
}
// Paint the line below the fold
if (lastSubLine &&
((expanded && (FlagSet(model.foldFlags, FoldFlag::LineAfterExpanded)))
||
(!expanded && (FlagSet(model.foldFlags, FoldFlag::LineAfterContracted))))) {
- surface->FillRectangleAligned(Side(rcLine, Edge::bottom, 1.0), Fill(vsDraw.styles[StyleDefault].fore));
+ surface->FillRectangleAligned(Side(rcLine, Edge::bottom, 1.0), foldLineColour);
}
}
}