aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Indicator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Indicator.h')
-rw-r--r--src/Indicator.h26
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