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.
13 struct StyleAndColour
{
16 StyleAndColour() noexcept
: style(INDIC_PLAIN
), fore(0, 0, 0) {
18 StyleAndColour(int style_
, ColourDesired fore_
= ColourDesired(0, 0, 0)) noexcept
: style(style_
), fore(fore_
) {
20 bool operator==(const StyleAndColour
&other
) const {
21 return (style
== other
.style
) && (fore
== other
.fore
);
29 enum DrawState
{ drawNormal
, drawHover
};
30 StyleAndColour sacNormal
;
31 StyleAndColour sacHover
;
36 Indicator() noexcept
: under(false), fillAlpha(30), outlineAlpha(50), attributes(0) {
38 Indicator(int style_
, ColourDesired fore_
=ColourDesired(0,0,0), bool under_
=false, int fillAlpha_
=30, int outlineAlpha_
=50) noexcept
:
39 sacNormal(style_
, fore_
), sacHover(style_
, fore_
), under(under_
), fillAlpha(fillAlpha_
), outlineAlpha(outlineAlpha_
), attributes(0) {
41 void Draw(Surface
*surface
, const PRectangle
&rc
, const PRectangle
&rcLine
, const PRectangle
&rcCharacter
, DrawState drawState
, int value
) const;
42 bool IsDynamic() const {
43 return !(sacNormal
== sacHover
);
45 bool OverridesTextFore() const {
46 return sacNormal
.style
== INDIC_TEXTFORE
|| sacHover
.style
== INDIC_TEXTFORE
;
51 void SetFlags(int attributes_
);