aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/Scintilla.h2
-rw-r--r--include/Scintilla.iface2
-rw-r--r--src/Indicator.cxx14
3 files changed, 18 insertions, 0 deletions
diff --git a/include/Scintilla.h b/include/Scintilla.h
index f1c4fa99f..54fcb3f38 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -248,6 +248,8 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#define INDIC_BOX 6
#define INDIC_ROUNDBOX 7
#define INDIC_STRAIGHTBOX 8
+#define INDIC_DASH 9
+#define INDIC_DOTS 10
#define INDIC_MAX 31
#define INDIC_CONTAINER 8
#define INDIC0_MASK 0x20
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index 8cd3ab5d0..0fe9ca876 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -551,6 +551,8 @@ val INDIC_HIDDEN=5
val INDIC_BOX=6
val INDIC_ROUNDBOX=7
val INDIC_STRAIGHTBOX=8
+val INDIC_DASH=9
+val INDIC_DOTS=10
val INDIC_MAX=31
val INDIC_CONTAINER=8
val INDIC0_MASK=0x20
diff --git a/src/Indicator.cxx b/src/Indicator.cxx
index 5c352bf1c..c1d07b2e6 100644
--- a/src/Indicator.cxx
+++ b/src/Indicator.cxx
@@ -73,6 +73,20 @@ void Indicator::Draw(Surface *surface, const PRectangle &rc, const PRectangle &r
rcBox.left = rc.left;
rcBox.right = rc.right;
surface->AlphaRectangle(rcBox, (style == INDIC_ROUNDBOX) ? 1 : 0, fore.allocated, fillAlpha, fore.allocated, outlineAlpha, 0);
+ } else if (style == INDIC_DASH) {
+ int x = rc.left;
+ while (x < rc.right) {
+ surface->MoveTo(x, ymid);
+ surface->LineTo(Platform::Minimum(x + 4, rc.right), ymid);
+ x += 7;
+ }
+ } else if (style == INDIC_DOTS) {
+ int x = rc.left;
+ while (x < rc.right) {
+ PRectangle rcDot(x, ymid, x+1, ymid+1);
+ surface->FillRectangle(rcDot, fore.allocated);
+ x += 2;
+ }
} else { // Either INDIC_PLAIN or unknown
surface->MoveTo(rc.left, ymid);
surface->LineTo(rc.right, ymid);