diff options
Diffstat (limited to 'src/Indicator.h')
-rw-r--r-- | src/Indicator.h | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/Indicator.h b/src/Indicator.h index 96cba3c05..c17ae494c 100644 --- a/src/Indicator.h +++ b/src/Indicator.h @@ -12,21 +12,37 @@ namespace Scintilla { #endif +struct StyleAndColour { + int style; + ColourDesired fore; + StyleAndColour() : style(INDIC_PLAIN), fore(0, 0, 0) { + } + StyleAndColour(int style_, ColourDesired fore_ = ColourDesired(0, 0, 0)) : style(style_), fore(fore_) { + } + bool operator==(const StyleAndColour &other) const { + return (style == other.style) && (fore == other.fore); + } +}; + /** */ class Indicator { public: - int style; - ColourDesired fore; + enum DrawState { drawNormal, drawHover, drawActive }; + StyleAndColour sacNormal; + StyleAndColour sacHover; bool under; int fillAlpha; int outlineAlpha; - Indicator() : style(INDIC_PLAIN), fore(ColourDesired(0,0,0)), under(false), fillAlpha(30), outlineAlpha(50) { + Indicator() : under(false), fillAlpha(30), outlineAlpha(50) { } Indicator(int style_, ColourDesired fore_=ColourDesired(0,0,0), bool under_=false, int fillAlpha_=30, int outlineAlpha_=50) : - style(style_), fore(fore_), under(under_), fillAlpha(fillAlpha_), outlineAlpha(outlineAlpha_) { + sacNormal(style_, fore_), sacHover(style_, fore_), under(under_), fillAlpha(fillAlpha_), outlineAlpha(outlineAlpha_) { + } + void Draw(Surface *surface, const PRectangle &rc, const PRectangle &rcLine, DrawState drawState) const; + bool IsDynamic() const { + return !(sacNormal == sacHover); } - void Draw(Surface *surface, const PRectangle &rc, const PRectangle &rcLine) const; }; #ifdef SCI_NAMESPACE |