aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaDoc.html10
-rw-r--r--doc/ScintillaHistory.html6
-rw-r--r--include/Scintilla.h1
-rw-r--r--include/Scintilla.iface1
-rw-r--r--src/EditView.cxx18
5 files changed, 27 insertions, 9 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index e21be5e6a..068dbdf9d 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -82,7 +82,7 @@
<h1>Scintilla Documentation</h1>
- <p>Last edited 16 October 2014 NH</p>
+ <p>Last edited 16 November 2014 NH</p>
<p>There is <a class="jump" href="Design.html">an overview of the internal design of
Scintilla</a>.<br />
@@ -3160,6 +3160,14 @@ struct Sci_TextToFind {
<td>Annotations are indented to match the text and are surrounded by a box.</td>
</tr>
+
+ <tr>
+ <th align="left"><code>ANNOTATION_INDENTED</code></th>
+
+ <td>3</td>
+
+ <td>Annotations are indented to match the text.</td>
+ </tr>
</tbody>
</table>
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 61ed3b7bc..5be8e6b89 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -460,6 +460,8 @@
<td>Mat Berchtold</td>
<td>Michael Staszewski</td>
<td>Baurzhan Muftakhidinov</td>
+ </tr><tr>
+ <td>Erik Angelin</td>
</tr>
</table>
<p>
@@ -493,6 +495,10 @@
ensure no clash between the use of indicators for IME and for the application.
</li>
<li>
+ ANNOTATION_INDENTED added which is similar to ANNOTATION_BOXED in terms of positioning
+ but does not show a border.
+ </li>
+ <li>
VHDL folder fixes "block" keyword.
<a href="http://sourceforge.net/p/scintilla/bugs/1664/">Bug #1664</a>.
</li>
diff --git a/include/Scintilla.h b/include/Scintilla.h
index b972512c3..9779cfee6 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -818,6 +818,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#define ANNOTATION_HIDDEN 0
#define ANNOTATION_STANDARD 1
#define ANNOTATION_BOXED 2
+#define ANNOTATION_INDENTED 3
#define SCI_ANNOTATIONSETVISIBLE 2548
#define SCI_ANNOTATIONGETVISIBLE 2549
#define SCI_ANNOTATIONSETSTYLEOFFSET 2550
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index bfbffd878..e8c96591b 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -2157,6 +2157,7 @@ enu AnnotationVisible=ANNOTATION_
val ANNOTATION_HIDDEN=0
val ANNOTATION_STANDARD=1
val ANNOTATION_BOXED=2
+val ANNOTATION_INDENTED=3
# Set the visibility for the annotations for a view
set void AnnotationSetVisible=2548(int visible,)
diff --git a/src/EditView.cxx b/src/EditView.cxx
index f1d201f15..845d38dc5 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -992,6 +992,10 @@ static void DrawIndicators(Surface *surface, const EditModel &model, const ViewS
}
}
+static bool AnnotationBoxedOrIndented(int annotationVisible) {
+ return annotationVisible == ANNOTATION_BOXED || annotationVisible == ANNOTATION_INDENTED;
+}
+
void EditView::DrawAnnotation(Surface *surface, const EditModel &model, const ViewStyle &vsDraw, const LineLayout *ll,
int line, int xStart, PRectangle rcLine, int subLine, DrawPhase phase) {
int indent = static_cast<int>(model.pdoc->GetLineIndentation(line) * vsDraw.spaceWidth);
@@ -1003,18 +1007,16 @@ void EditView::DrawAnnotation(Surface *surface, const EditModel &model, const Vi
surface->FillRectangle(rcSegment, vsDraw.styles[0].back);
}
rcSegment.left = static_cast<XYPOSITION>(xStart);
- if (model.trackLineWidth || (vsDraw.annotationVisible == ANNOTATION_BOXED)) {
- // Only care about calculating width if tracking or need to draw box
+ if (model.trackLineWidth || AnnotationBoxedOrIndented(vsDraw.annotationVisible)) {
+ // Only care about calculating width if tracking or need to draw indented box
int widthAnnotation = WidestLineWidth(surface, vsDraw, vsDraw.annotationStyleOffset, stAnnotation);
- if (vsDraw.annotationVisible == ANNOTATION_BOXED) {
+ if (AnnotationBoxedOrIndented(vsDraw.annotationVisible)) {
widthAnnotation += static_cast<int>(vsDraw.spaceWidth * 2); // Margins
- }
- if (widthAnnotation > lineWidthMaxSeen)
- lineWidthMaxSeen = widthAnnotation;
- if (vsDraw.annotationVisible == ANNOTATION_BOXED) {
rcSegment.left = static_cast<XYPOSITION>(xStart + indent);
rcSegment.right = rcSegment.left + widthAnnotation;
}
+ if (widthAnnotation > lineWidthMaxSeen)
+ lineWidthMaxSeen = widthAnnotation;
}
const int annotationLines = model.pdoc->AnnotationLines(line);
size_t start = 0;
@@ -1026,7 +1028,7 @@ void EditView::DrawAnnotation(Surface *surface, const EditModel &model, const Vi
lineInAnnotation++;
}
PRectangle rcText = rcSegment;
- if ((phase & drawBack) && (vsDraw.annotationVisible == ANNOTATION_BOXED)) {
+ if ((phase & drawBack) && AnnotationBoxedOrIndented(vsDraw.annotationVisible)) {
surface->FillRectangle(rcText,
vsDraw.styles[stAnnotation.StyleAt(start) + vsDraw.annotationStyleOffset].back);
rcText.left += vsDraw.spaceWidth;