diff options
author | Neil Hodgson <nyamatongwe@gmail.com> | 2014-01-21 09:18:57 +1100 |
---|---|---|
committer | Neil Hodgson <nyamatongwe@gmail.com> | 2014-01-21 09:18:57 +1100 |
commit | 023603c25dfdc73b0a51baaf3309d1bf18e04261 (patch) | |
tree | d2bbc7307bbcce20a70fc0f40c6b9c0594e73211 | |
parent | 9bc61c70c534d999ae0ad01fe56f59a41e7c9f16 (diff) | |
download | scintilla-mirror-023603c25dfdc73b0a51baaf3309d1bf18e04261.tar.gz |
Implement new marker symbol SC_MARK_BOOKMARK.
-rw-r--r-- | doc/ScintillaDoc.html | 45 | ||||
-rw-r--r-- | include/Scintilla.h | 1 | ||||
-rw-r--r-- | include/Scintilla.iface | 1 | ||||
-rw-r--r-- | src/LineMarker.cxx | 13 |
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); } |