1 // Scintilla source code edit control
3 ** Defines the style of indicators which are text decorations such as underlining.
5 // Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
15 struct StyleAndColour
{
18 StyleAndColour() : style(INDIC_PLAIN
), fore(0, 0, 0) {
20 StyleAndColour(int style_
, ColourDesired fore_
= ColourDesired(0, 0, 0)) : style(style_
), fore(fore_
) {
22 bool operator==(const StyleAndColour
&other
) const {
23 return (style
== other
.style
) && (fore
== other
.fore
);
31 enum DrawState
{ drawNormal
, drawHover
};
32 StyleAndColour sacNormal
;
33 StyleAndColour sacHover
;
38 Indicator() : under(false), fillAlpha(30), outlineAlpha(50), attributes(0) {
40 Indicator(int style_
, ColourDesired fore_
=ColourDesired(0,0,0), bool under_
=false, int fillAlpha_
=30, int outlineAlpha_
=50) :
41 sacNormal(style_
, fore_
), sacHover(style_
, fore_
), under(under_
), fillAlpha(fillAlpha_
), outlineAlpha(outlineAlpha_
), attributes(0) {
43 void Draw(Surface
*surface
, const PRectangle
&rc
, const PRectangle
&rcLine
, const PRectangle
&rcCharacter
, DrawState drawState
, int value
) const;
44 bool IsDynamic() const {
45 return !(sacNormal
== sacHover
);
47 bool OverridesTextFore() const {
48 return sacNormal
.style
== INDIC_TEXTFORE
|| sacHover
.style
== INDIC_TEXTFORE
;
53 void SetFlags(int attributes_
);