aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx56
-rw-r--r--src/ScintillaBase.cxx6
-rw-r--r--src/ViewStyle.h4
-rw-r--r--src/XPM.cxx29
4 files changed, 59 insertions, 36 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index c89f3b6b8..80cdbc97a 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -5593,10 +5593,10 @@ void Editor::StyleSetMessage(unsigned int iMessage, uptr_t wParam, sptr_t lParam
vs.EnsureStyle(wParam);
switch (iMessage) {
case SCI_STYLESETFORE:
- vs.styles[wParam].fore = ColourDesired(static_cast<long>(lParam));
+ vs.styles[wParam].fore = ColourDesired(static_cast<int>(lParam));
break;
case SCI_STYLESETBACK:
- vs.styles[wParam].back = ColourDesired(static_cast<long>(lParam));
+ vs.styles[wParam].back = ColourDesired(static_cast<int>(lParam));
break;
case SCI_STYLESETBOLD:
vs.styles[wParam].weight = lParam != 0 ? SC_WEIGHT_BOLD : SC_WEIGHT_NORMAL;
@@ -5648,9 +5648,9 @@ sptr_t Editor::StyleGetMessage(unsigned int iMessage, uptr_t wParam, sptr_t lPar
vs.EnsureStyle(wParam);
switch (iMessage) {
case SCI_STYLEGETFORE:
- return vs.styles[wParam].fore.AsLong();
+ return vs.styles[wParam].fore.AsInteger();
case SCI_STYLEGETBACK:
- return vs.styles[wParam].back.AsLong();
+ return vs.styles[wParam].back.AsInteger();
case SCI_STYLEGETBOLD:
return vs.styles[wParam].weight > SC_WEIGHT_NORMAL;
case SCI_STYLEGETWEIGHT:
@@ -6790,13 +6790,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_MARKERSETFORE:
if (wParam <= MARKER_MAX)
- vs.markers[wParam].fore = ColourDesired(static_cast<long>(lParam));
+ vs.markers[wParam].fore = ColourDesired(static_cast<int>(lParam));
InvalidateStyleData();
RedrawSelMargin();
break;
case SCI_MARKERSETBACKSELECTED:
if (wParam <= MARKER_MAX)
- vs.markers[wParam].backSelected = ColourDesired(static_cast<long>(lParam));
+ vs.markers[wParam].backSelected = ColourDesired(static_cast<int>(lParam));
InvalidateStyleData();
RedrawSelMargin();
break;
@@ -6806,7 +6806,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
break;
case SCI_MARKERSETBACK:
if (wParam <= MARKER_MAX)
- vs.markers[wParam].back = ColourDesired(static_cast<long>(lParam));
+ vs.markers[wParam].back = ColourDesired(static_cast<int>(lParam));
InvalidateStyleData();
RedrawSelMargin();
break;
@@ -6945,14 +6945,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_SETMARGINBACKN:
if (ValidMargin(wParam)) {
- vs.ms[wParam].back = ColourDesired(static_cast<long>(lParam));
+ vs.ms[wParam].back = ColourDesired(static_cast<int>(lParam));
InvalidateStyleRedraw();
}
break;
case SCI_GETMARGINBACKN:
if (ValidMargin(wParam))
- return vs.ms[wParam].back.AsLong();
+ return vs.ms[wParam].back.AsInteger();
else
return 0;
@@ -7047,9 +7047,9 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
InvalidateStyleRedraw();
break;
case SCI_GETCARETLINEBACK:
- return vs.caretLineBackground.AsLong();
+ return vs.caretLineBackground.AsInteger();
case SCI_SETCARETLINEBACK:
- vs.caretLineBackground = ColourDesired(static_cast<long>(wParam));
+ vs.caretLineBackground = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
case SCI_GETCARETLINEBACKALPHA:
@@ -7197,13 +7197,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_SETSELFORE:
vs.selColours.fore = ColourOptional(wParam, lParam);
- vs.selAdditionalForeground = ColourDesired(static_cast<long>(lParam));
+ vs.selAdditionalForeground = ColourDesired(static_cast<int>(lParam));
InvalidateStyleRedraw();
break;
case SCI_SETSELBACK:
vs.selColours.back = ColourOptional(wParam, lParam);
- vs.selAdditionalBackground = ColourDesired(static_cast<long>(lParam));
+ vs.selAdditionalBackground = ColourDesired(static_cast<int>(lParam));
InvalidateStyleRedraw();
break;
@@ -7235,12 +7235,12 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
break;
case SCI_SETCARETFORE:
- vs.caretcolour = ColourDesired(static_cast<long>(wParam));
+ vs.caretcolour = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
case SCI_GETCARETFORE:
- return vs.caretcolour.AsLong();
+ return vs.caretcolour.AsInteger();
case SCI_SETCARETSTYLE:
if (wParam <= CARETSTYLE_BLOCK)
@@ -7289,14 +7289,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_INDICSETFORE:
if (wParam <= INDIC_MAX) {
- vs.indicators[wParam].sacNormal.fore = ColourDesired(static_cast<long>(lParam));
- vs.indicators[wParam].sacHover.fore = ColourDesired(static_cast<long>(lParam));
+ vs.indicators[wParam].sacNormal.fore = ColourDesired(static_cast<int>(lParam));
+ vs.indicators[wParam].sacHover.fore = ColourDesired(static_cast<int>(lParam));
InvalidateStyleRedraw();
}
break;
case SCI_INDICGETFORE:
- return (wParam <= INDIC_MAX) ? vs.indicators[wParam].sacNormal.fore.AsLong() : 0;
+ return (wParam <= INDIC_MAX) ? vs.indicators[wParam].sacNormal.fore.AsInteger() : 0;
case SCI_INDICSETHOVERSTYLE:
if (wParam <= INDIC_MAX) {
@@ -7310,13 +7310,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_INDICSETHOVERFORE:
if (wParam <= INDIC_MAX) {
- vs.indicators[wParam].sacHover.fore = ColourDesired(static_cast<long>(lParam));
+ vs.indicators[wParam].sacHover.fore = ColourDesired(static_cast<int>(lParam));
InvalidateStyleRedraw();
}
break;
case SCI_INDICGETHOVERFORE:
- return (wParam <= INDIC_MAX) ? vs.indicators[wParam].sacHover.fore.AsLong() : 0;
+ return (wParam <= INDIC_MAX) ? vs.indicators[wParam].sacHover.fore.AsInteger() : 0;
case SCI_INDICSETFLAGS:
if (wParam <= INDIC_MAX) {
@@ -7547,10 +7547,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
break;
case SCI_GETEDGECOLOUR:
- return vs.theEdge.colour.AsLong();
+ return vs.theEdge.colour.AsInteger();
case SCI_SETEDGECOLOUR:
- vs.theEdge.colour = ColourDesired(static_cast<long>(wParam));
+ vs.theEdge.colour = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
@@ -7782,7 +7782,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
break;
case SCI_GETHOTSPOTACTIVEFORE:
- return vs.hotspotColours.fore.AsLong();
+ return vs.hotspotColours.fore.AsInteger();
case SCI_SETHOTSPOTACTIVEBACK:
vs.hotspotColours.back = ColourOptional(wParam, lParam);
@@ -7790,7 +7790,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
break;
case SCI_GETHOTSPOTACTIVEBACK:
- return vs.hotspotColours.back.AsLong();
+ return vs.hotspotColours.back.AsInteger();
case SCI_SETHOTSPOTACTIVEUNDERLINE:
vs.hotspotUnderline = wParam != 0;
@@ -8114,12 +8114,12 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
return virtualSpaceOptions;
case SCI_SETADDITIONALSELFORE:
- vs.selAdditionalForeground = ColourDesired(static_cast<long>(wParam));
+ vs.selAdditionalForeground = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
case SCI_SETADDITIONALSELBACK:
- vs.selAdditionalBackground = ColourDesired(static_cast<long>(wParam));
+ vs.selAdditionalBackground = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
@@ -8132,12 +8132,12 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
return vs.selAdditionalAlpha;
case SCI_SETADDITIONALCARETFORE:
- vs.additionalCaretColour = ColourDesired(static_cast<long>(wParam));
+ vs.additionalCaretColour = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
case SCI_GETADDITIONALCARETFORE:
- return vs.additionalCaretColour.AsLong();
+ return vs.additionalCaretColour.AsInteger();
case SCI_ROTATESELECTION:
sel.RotateMain();
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx
index 71f42d856..824bcdfeb 100644
--- a/src/ScintillaBase.cxx
+++ b/src/ScintillaBase.cxx
@@ -1013,19 +1013,19 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara
break;
case SCI_CALLTIPSETBACK:
- ct.colourBG = ColourDesired(static_cast<long>(wParam));
+ ct.colourBG = ColourDesired(static_cast<int>(wParam));
vs.styles[STYLE_CALLTIP].back = ct.colourBG;
InvalidateStyleRedraw();
break;
case SCI_CALLTIPSETFORE:
- ct.colourUnSel = ColourDesired(static_cast<long>(wParam));
+ ct.colourUnSel = ColourDesired(static_cast<int>(wParam));
vs.styles[STYLE_CALLTIP].fore = ct.colourUnSel;
InvalidateStyleRedraw();
break;
case SCI_CALLTIPSETFOREHLT:
- ct.colourSel = ColourDesired(static_cast<long>(wParam));
+ ct.colourSel = ColourDesired(static_cast<int>(wParam));
InvalidateStyleRedraw();
break;
diff --git a/src/ViewStyle.h b/src/ViewStyle.h
index 2a4e7329a..800d8cb67 100644
--- a/src/ViewStyle.h
+++ b/src/ViewStyle.h
@@ -68,7 +68,7 @@ public:
bool isSet;
ColourOptional(ColourDesired colour_=ColourDesired(0,0,0), bool isSet_=false) : ColourDesired(colour_), isSet(isSet_) {
}
- ColourOptional(uptr_t wParam, sptr_t lParam) : ColourDesired(static_cast<long>(lParam)), isSet(wParam != 0) {
+ ColourOptional(uptr_t wParam, sptr_t lParam) : ColourDesired(static_cast<int>(lParam)), isSet(wParam != 0) {
}
};
@@ -84,7 +84,7 @@ struct EdgeProperties {
column(column_), colour(colour_) {
}
EdgeProperties(uptr_t wParam, sptr_t lParam) :
- column(static_cast<int>(wParam)), colour(static_cast<long>(lParam)) {
+ column(static_cast<int>(wParam)), colour(static_cast<int>(lParam)) {
}
};
diff --git a/src/XPM.cxx b/src/XPM.cxx
index 65099a8b3..0d4a2a068 100644
--- a/src/XPM.cxx
+++ b/src/XPM.cxx
@@ -22,7 +22,9 @@
using namespace Scintilla;
-static const char *NextField(const char *s) {
+namespace {
+
+const char *NextField(const char *s) {
// In case there are leading spaces in the string
while (*s == ' ') {
s++;
@@ -37,13 +39,34 @@ static const char *NextField(const char *s) {
}
// Data lines in XPM can be terminated either with NUL or "
-static size_t MeasureLength(const char *s) {
+size_t MeasureLength(const char *s) {
size_t i = 0;
while (s[i] && (s[i] != '\"'))
i++;
return i;
}
+unsigned int ValueOfHex(const char ch) noexcept {
+ if (ch >= '0' && ch <= '9')
+ return ch - '0';
+ else if (ch >= 'A' && ch <= 'F')
+ return ch - 'A' + 10;
+ else if (ch >= 'a' && ch <= 'f')
+ return ch - 'a' + 10;
+ else
+ return 0;
+}
+
+ColourDesired ColourFromHex(const char *val) noexcept {
+ unsigned int r = ValueOfHex(val[0]) * 16 + ValueOfHex(val[1]);
+ unsigned int g = ValueOfHex(val[2]) * 16 + ValueOfHex(val[3]);
+ unsigned int b = ValueOfHex(val[4]) * 16 + ValueOfHex(val[5]);
+ return ColourDesired(r, g, b);
+}
+
+}
+
+
ColourDesired XPM::ColourFromCode(int ch) const {
return colourCodeTable[ch];
}
@@ -110,7 +133,7 @@ void XPM::Init(const char *const *linesForm) {
colourDef += 4;
ColourDesired colour(0xff, 0xff, 0xff);
if (*colourDef == '#') {
- colour.Set(colourDef);
+ colour = ColourFromHex(colourDef+1);
} else {
codeTransparent = code;
}