diff options
author | nyamatongwe <unknown> | 2011-06-02 17:13:04 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2011-06-02 17:13:04 +1000 |
commit | 712c48218c8394ff69e07eebffa2ce7347041f7d (patch) | |
tree | 14d46a546263e8e49656ca9aa95541d7f55d6059 | |
parent | fb475dce0aeca96bf212998533af2248f0a182b4 (diff) | |
download | scintilla-mirror-712c48218c8394ff69e07eebffa2ce7347041f7d.tar.gz |
Added new indicators: dashed and dotted underlines.
-rw-r--r-- | include/Scintilla.h | 2 | ||||
-rw-r--r-- | include/Scintilla.iface | 2 | ||||
-rw-r--r-- | src/Indicator.cxx | 14 |
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); |