aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ViewStyle.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/ViewStyle.cxx')
-rw-r--r--src/ViewStyle.cxx71
1 files changed, 34 insertions, 37 deletions
diff --git a/src/ViewStyle.cxx b/src/ViewStyle.cxx
index 5645e47fc..d4de3a6f5 100644
--- a/src/ViewStyle.cxx
+++ b/src/ViewStyle.cxx
@@ -198,9 +198,9 @@ void ViewStyle::Init(size_t stylesSize_) {
// There are no image markers by default, so no need for calling CalcLargestMarkerHeight()
largestMarkerHeight = 0;
- indicators[0] = Indicator(INDIC_SQUIGGLE, ColourDesired(0, 0x7f, 0));
- indicators[1] = Indicator(INDIC_TT, ColourDesired(0, 0, 0xff));
- indicators[2] = Indicator(INDIC_PLAIN, ColourDesired(0xff, 0, 0));
+ indicators[0] = Indicator(INDIC_SQUIGGLE, ColourAlpha(0, 0x7f, 0));
+ indicators[1] = Indicator(INDIC_TT, ColourAlpha(0, 0, 0xff));
+ indicators[2] = Indicator(INDIC_PLAIN, ColourAlpha(0xff, 0, 0));
technology = SC_TECHNOLOGY_DEFAULT;
indicatorsDynamic = false;
@@ -213,40 +213,40 @@ void ViewStyle::Init(size_t stylesSize_) {
spaceWidth = 8;
tabWidth = spaceWidth * 8;
- selColours.fore = ColourOptional(ColourDesired(0xff, 0, 0));
- selColours.back = ColourOptional(ColourDesired(0xc0, 0xc0, 0xc0), true);
- selAdditionalForeground = ColourDesired(0xff, 0, 0);
- selAdditionalBackground = ColourDesired(0xd7, 0xd7, 0xd7);
- selBackground2 = ColourDesired(0xb0, 0xb0, 0xb0);
+ selColours.fore.reset();
+ selColours.back = ColourAlpha(0xc0, 0xc0, 0xc0);
+ selAdditionalForeground = ColourAlpha(0xff, 0, 0);
+ selAdditionalBackground = ColourAlpha(0xd7, 0xd7, 0xd7);
+ selBackground2 = ColourAlpha(0xb0, 0xb0, 0xb0);
selAlpha = SC_ALPHA_NOALPHA;
selAdditionalAlpha = SC_ALPHA_NOALPHA;
selEOLFilled = false;
- foldmarginColour = ColourOptional(ColourDesired(0xff, 0, 0));
- foldmarginHighlightColour = ColourOptional(ColourDesired(0xc0, 0xc0, 0xc0));
+ foldmarginColour.reset();
+ foldmarginHighlightColour.reset();
- whitespaceColours.fore = ColourOptional();
- whitespaceColours.back = ColourOptional(ColourDesired(0xff, 0xff, 0xff));
+ whitespaceColours.fore.reset();
+ whitespaceColours.back.reset();
controlCharSymbol = 0; /* Draw the control characters */
controlCharWidth = 0;
selbar = Platform::Chrome();
selbarlight = Platform::ChromeHighlight();
- styles[STYLE_LINENUMBER].fore = ColourDesired(0, 0, 0);
+ styles[STYLE_LINENUMBER].fore = ColourAlpha(0, 0, 0);
styles[STYLE_LINENUMBER].back = Platform::Chrome();
- caretcolour = ColourDesired(0, 0, 0);
- additionalCaretColour = ColourDesired(0x7f, 0x7f, 0x7f);
+ caretcolour = ColourAlpha(0, 0, 0);
+ additionalCaretColour = ColourAlpha(0x7f, 0x7f, 0x7f);
caretLineFrame = 0;
showCaretLineBackground = false;
alwaysShowCaretLineBackground = false;
- caretLineBackground = ColourDesired(0xff, 0xff, 0);
+ caretLineBackground = ColourAlpha(0xff, 0xff, 0);
caretLineAlpha = SC_ALPHA_NOALPHA;
caretStyle = CARETSTYLE_LINE;
caretWidth = 1;
someStylesProtected = false;
someStylesForceCase = false;
- hotspotColours.fore = ColourOptional(ColourDesired(0, 0, 0xff));
- hotspotColours.back = ColourOptional(ColourDesired(0xff, 0xff, 0xff));
+ hotspotColours.fore.reset();
+ hotspotColours.back.reset();
hotspotUnderline = true;
hotspotSingleLine = true;
@@ -279,7 +279,7 @@ void ViewStyle::Init(size_t stylesSize_) {
braceBadLightIndicator = 0;
edgeState = EDGE_NONE;
- theEdge = EdgeProperties(0, ColourDesired(0xc0, 0xc0, 0xc0));
+ theEdge = EdgeProperties(0, ColourAlpha(0xc0, 0xc0, 0xc0));
marginNumberPadding = 3;
ctrlCharPadding = 3; // +3 For a blank on front and rounded edge each side
@@ -381,8 +381,8 @@ void ViewStyle::EnsureStyle(size_t index) {
}
void ViewStyle::ResetDefaultStyle() {
- styles[STYLE_DEFAULT].Clear(ColourDesired(0,0,0),
- ColourDesired(0xff,0xff,0xff),
+ styles[STYLE_DEFAULT].Clear(ColourAlpha(0,0,0),
+ ColourAlpha(0xff,0xff,0xff),
Platform::DefaultFontSize() * SC_FONT_SIZE_MULTIPLIER, fontNames.Save(Platform::DefaultFont()),
SC_CHARSET_DEFAULT,
SC_WEIGHT_NORMAL, false, false, false, Style::CaseForce::mixed, true, true, false);
@@ -398,8 +398,8 @@ void ViewStyle::ClearStyles() {
styles[STYLE_LINENUMBER].back = Platform::Chrome();
// Set call tip fore/back to match the values previously set for call tips
- styles[STYLE_CALLTIP].back = ColourDesired(0xff, 0xff, 0xff);
- styles[STYLE_CALLTIP].fore = ColourDesired(0x80, 0x80, 0x80);
+ styles[STYLE_CALLTIP].back = ColourAlpha(0xff, 0xff, 0xff);
+ styles[STYLE_CALLTIP].fore = ColourAlpha(0x80, 0x80, 0x80);
}
void ViewStyle::SetStyleFontName(int styleIndex, const char *name) {
@@ -464,29 +464,29 @@ bool ViewStyle::IsLineFrameOpaque(bool caretActive, bool lineContainsCaret) cons
// display itself (as long as it's not an SC_MARK_EMPTY marker). These are checked in order
// with the earlier taking precedence. When multiple markers cause background override,
// the colour for the highest numbered one is used.
-ColourOptional ViewStyle::Background(int marksOfLine, bool caretActive, bool lineContainsCaret) const noexcept {
- ColourOptional background;
+std::optional<ColourAlpha> ViewStyle::Background(int marksOfLine, bool caretActive, bool lineContainsCaret) const {
+ std::optional<ColourAlpha> background;
if (!caretLineFrame && (caretActive || alwaysShowCaretLineBackground) && showCaretLineBackground &&
(caretLineAlpha == SC_ALPHA_NOALPHA) && lineContainsCaret) {
- background = ColourOptional(caretLineBackground, true);
+ background = caretLineBackground;
}
- if (!background.isSet && marksOfLine) {
+ if (!background && marksOfLine) {
int marks = marksOfLine;
for (int markBit = 0; (markBit < 32) && marks; markBit++) {
if ((marks & 1) && (markers[markBit].markType == SC_MARK_BACKGROUND) &&
(markers[markBit].alpha == SC_ALPHA_NOALPHA)) {
- background = ColourOptional(markers[markBit].back, true);
+ background = markers[markBit].back;
}
marks >>= 1;
}
}
- if (!background.isSet && maskInLine) {
+ if (!background && maskInLine) {
int marksMasked = marksOfLine & maskInLine;
if (marksMasked) {
for (int markBit = 0; (markBit < 32) && marksMasked; markBit++) {
if ((marksMasked & 1) &&
(markers[markBit].alpha == SC_ALPHA_NOALPHA)) {
- background = ColourOptional(markers[markBit].back, true);
+ background = markers[markBit].back;
}
marksMasked >>= 1;
}
@@ -496,12 +496,12 @@ ColourOptional ViewStyle::Background(int marksOfLine, bool caretActive, bool lin
}
bool ViewStyle::SelectionBackgroundDrawn() const noexcept {
- return selColours.back.isSet &&
+ return selColours.back &&
((selAlpha == SC_ALPHA_NOALPHA) || (selAdditionalAlpha == SC_ALPHA_NOALPHA));
}
bool ViewStyle::WhitespaceBackgroundDrawn() const noexcept {
- return (viewWhitespace != WhiteSpace::invisible) && (whitespaceColours.back.isSet);
+ return (viewWhitespace != WhiteSpace::invisible) && (whitespaceColours.back);
}
bool ViewStyle::WhiteSpaceVisible(bool inIndent) const noexcept {
@@ -510,11 +510,8 @@ bool ViewStyle::WhiteSpaceVisible(bool inIndent) const noexcept {
viewWhitespace == WhiteSpace::visibleAlways;
}
-ColourDesired ViewStyle::WrapColour() const noexcept {
- if (whitespaceColours.fore.isSet)
- return whitespaceColours.fore;
- else
- return styles[STYLE_DEFAULT].fore;
+ColourAlpha ViewStyle::WrapColour() const noexcept {
+ return whitespaceColours.fore.value_or(styles[STYLE_DEFAULT].fore);
}
// Insert new edge in sorted order.