aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaDoc.html45
-rw-r--r--include/Scintilla.h1
-rw-r--r--include/Scintilla.iface1
-rw-r--r--src/LineMarker.cxx13
4 files changed, 45 insertions, 15 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index 1aaab5307..a40a7334f 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -3568,12 +3568,22 @@ struct Sci_TextToFind {
<p><b id="SCI_MARKERDEFINE">SCI_MARKERDEFINE(int markerNumber, int markerSymbols)</b><br />
This message associates a marker number in the range 0 to 31 with one of the marker symbols or
an ASCII character. The general-purpose marker symbols currently available are:<br />
- <code>SC_MARK_CIRCLE</code>, <code>SC_MARK_ROUNDRECT</code>, <code>SC_MARK_ARROW</code>,
- <code>SC_MARK_SMALLRECT</code>, <code>SC_MARK_SHORTARROW</code>, <code>SC_MARK_EMPTY</code>,
- <code>SC_MARK_ARROWDOWN</code>, <code>SC_MARK_MINUS</code>, <code>SC_MARK_PLUS</code>,
- <code>SC_MARK_ARROWS</code>, <code>SC_MARK_DOTDOTDOT</code>,
- <code>SC_MARK_BACKGROUND</code>, <code>SC_MARK_LEFTRECT</code>,
- <code>SC_MARK_FULLRECT</code>, and <code>SC_MARK_UNDERLINE</code>.</p>
+ <code>SC_MARK_CIRCLE</code>,
+ <code>SC_MARK_ROUNDRECT</code>,
+ <code>SC_MARK_ARROW</code>,
+ <code>SC_MARK_SMALLRECT</code>,
+ <code>SC_MARK_SHORTARROW</code>,
+ <code>SC_MARK_EMPTY</code>,
+ <code>SC_MARK_ARROWDOWN</code>,
+ <code>SC_MARK_MINUS</code>,
+ <code>SC_MARK_PLUS</code>,
+ <code>SC_MARK_ARROWS</code>,
+ <code>SC_MARK_DOTDOTDOT</code>,
+ <code>SC_MARK_BACKGROUND</code>,
+ <code>SC_MARK_LEFTRECT</code>,
+ <code>SC_MARK_FULLRECT</code>,
+ <code>SC_MARK_BOOKMARK</code>, and
+ <code>SC_MARK_UNDERLINE</code>.</p>
<p>The <code>SC_MARK_BACKGROUND</code> marker changes the background colour of the line only.
The <code>SC_MARK_FULLRECT</code> symbol mirrors this, changing only the margin background colour.
@@ -3588,16 +3598,23 @@ struct Sci_TextToFind {
<p>There are also marker symbols designed for use in the folding margin in a flattened tree
style.<br />
- <code>SC_MARK_BOXMINUS</code>, <code>SC_MARK_BOXMINUSCONNECTED</code>,
- <code>SC_MARK_BOXPLUS</code>, <code>SC_MARK_BOXPLUSCONNECTED</code>,
- <code>SC_MARK_CIRCLEMINUS</code>, <code>SC_MARK_CIRCLEMINUSCONNECTED</code>,
- <code>SC_MARK_CIRCLEPLUS</code>, <code>SC_MARK_CIRCLEPLUSCONNECTED</code>,
- <code>SC_MARK_LCORNER</code>, <code>SC_MARK_LCORNERCURVE</code>, <code>SC_MARK_TCORNER</code>,
- <code>SC_MARK_TCORNERCURVE</code>, and <code>SC_MARK_VLINE</code>.</p>
- Characters can be used as markers by adding the ASCII value of the character to
+ <code>SC_MARK_BOXMINUS</code>,
+ <code>SC_MARK_BOXMINUSCONNECTED</code>,
+ <code>SC_MARK_BOXPLUS</code>,
+ <code>SC_MARK_BOXPLUSCONNECTED</code>,
+ <code>SC_MARK_CIRCLEMINUS</code>,
+ <code>SC_MARK_CIRCLEMINUSCONNECTED</code>,
+ <code>SC_MARK_CIRCLEPLUS</code>,
+ <code>SC_MARK_CIRCLEPLUSCONNECTED</code>,
+ <code>SC_MARK_LCORNER</code>,
+ <code>SC_MARK_LCORNERCURVE</code>,
+ <code>SC_MARK_TCORNER</code>,
+ <code>SC_MARK_TCORNERCURVE</code>, and
+ <code>SC_MARK_VLINE</code>.</p>
+ Characters can be used as markers by adding the ASCII value of the character to
<code>SC_MARK_CHARACTER</code> (10000). For example, to use 'A' (ASCII code 65) as marker
number 1 use:<br />
- <code>SCI_MARKERDEFINE(1, SC_MARK_CHARACTER+65)</code>. <br />
+ <code>SCI_MARKERDEFINE(1, SC_MARK_CHARACTER+65)</code>. <br />
<p>The marker numbers <code>SC_MARKNUM_FOLDER</code> and <code>SC_MARKNUM_FOLDEROPEN</code> are
used for showing that a fold is present and open or closed. Any symbols may be assigned for
diff --git a/include/Scintilla.h b/include/Scintilla.h
index dda068d75..ae1abc8e0 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -125,6 +125,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#define SC_MARK_AVAILABLE 28
#define SC_MARK_UNDERLINE 29
#define SC_MARK_RGBAIMAGE 30
+#define SC_MARK_BOOKMARK 31
#define SC_MARK_CHARACTER 10000
#define SC_MARKNUM_FOLDEREND 25
#define SC_MARKNUM_FOLDEROPENMID 26
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index 32a797251..0728eadc0 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -268,6 +268,7 @@ val SC_MARK_LEFTRECT=27
val SC_MARK_AVAILABLE=28
val SC_MARK_UNDERLINE=29
val SC_MARK_RGBAIMAGE=30
+val SC_MARK_BOOKMARK=31
val SC_MARK_CHARACTER=10000
diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx
index baa916254..cf44928b4 100644
--- a/src/LineMarker.cxx
+++ b/src/LineMarker.cxx
@@ -1,6 +1,6 @@
// Scintilla source code edit control
/** @file LineMarker.cxx
- ** Defines the look of a line marker in the margin .
+ ** Defines the look of a line marker in the margin.
**/
// Copyright 1998-2011 by Neil Hodgson <neilh@scintilla.org>
// The License.txt file describes the conditions under which this software may be distributed.
@@ -380,6 +380,17 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharac
PRectangle rcLeft = rcWhole;
rcLeft.right = rcLeft.left + 4;
surface->FillRectangle(rcLeft, back);
+ } else if (markType == SC_MARK_BOOKMARK) {
+ int halfHeight = minDim / 3;
+ Point pts[] = {
+ Point(rc.left, centreY-halfHeight),
+ Point(rc.right-3, centreY-halfHeight),
+ Point(rc.right-3-halfHeight, centreY),
+ Point(rc.right-3, centreY+halfHeight),
+ Point(rc.left, centreY+halfHeight),
+ };
+ surface->Polygon(pts, sizeof(pts) / sizeof(pts[0]),
+ fore, back);
} else { // SC_MARK_FULLRECT
surface->FillRectangle(rcWhole, back);
}