diff options
author | Neil <nyamatongwe@gmail.com> | 2018-05-14 13:57:03 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2018-05-14 13:57:03 +1000 |
commit | 3fc8c97d80a6797e60e6b203c9b4aa9d553df8a7 (patch) | |
tree | 9875855a197986e4ba8bf8ab1e8a491d1d1b321f | |
parent | 9948c490832acd4d211070adfef982d1c0e8b4c4 (diff) | |
download | scintilla-mirror-3fc8c97d80a6797e60e6b203c9b4aa9d553df8a7.tar.gz |
Modernize Platform.h (2) - noexcept, const, constexpr.
ColourDesired is an int instead of long for consistency over different platforms.
Changes made to Point, PRectangle, and ColourDesired.
RoundXYPosition removed.
-rw-r--r-- | cocoa/PlatCocoa.mm | 6 | ||||
-rw-r--r-- | gtk/PlatGTK.cxx | 6 | ||||
-rw-r--r-- | include/Platform.h | 79 | ||||
-rw-r--r-- | qt/ScintillaEditBase/PlatQt.h | 2 | ||||
-rw-r--r-- | src/Editor.cxx | 56 | ||||
-rw-r--r-- | src/ScintillaBase.cxx | 6 | ||||
-rw-r--r-- | src/ViewStyle.h | 4 | ||||
-rw-r--r-- | src/XPM.cxx | 29 | ||||
-rw-r--r-- | win32/PlatWin.cxx | 24 |
9 files changed, 101 insertions, 111 deletions
diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index bdf0d3997..704645cb6 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -255,7 +255,7 @@ void SurfaceImpl::InitPixMap(int width, int height, Surface *surface_, WindowID void SurfaceImpl::PenColour(ColourDesired fore) { if (gc) { - ColourDesired colour(fore.AsLong()); + ColourDesired colour(fore.AsInteger()); // Set the Stroke color to match CGContextSetRGBStrokeColor(gc, colour.GetRed() / 255.0, colour.GetGreen() / 255.0, @@ -267,7 +267,7 @@ void SurfaceImpl::PenColour(ColourDesired fore) { void SurfaceImpl::FillColour(const ColourDesired &back) { if (gc) { - ColourDesired colour(back.AsLong()); + ColourDesired colour(back.AsInteger()); // Set the Fill color to match CGContextSetRGBFillColor(gc, colour.GetRed() / 255.0, colour.GetGreen() / 255.0, @@ -854,7 +854,7 @@ CFStringEncoding EncodingFromCharacterSet(bool unicode, int characterSet) { void SurfaceImpl::DrawTextTransparent(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore) { CFStringEncoding encoding = EncodingFromCharacterSet(unicodeMode, FontCharacterSet(font_)); - ColourDesired colour(fore.AsLong()); + ColourDesired colour(fore.AsInteger()); CGColorRef color = CGColorCreateGenericRGB(colour.GetRed()/255.0, colour.GetGreen()/255.0, colour.GetBlue()/255.0, 1.0); QuartzTextStyle *style = TextStyleFromFont(font_); diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx index bb8f7575c..622936877 100644 --- a/gtk/PlatGTK.cxx +++ b/gtk/PlatGTK.cxx @@ -362,7 +362,7 @@ void SurfaceImpl::InitPixMap(int width, int height, Surface *surface_, WindowID void SurfaceImpl::PenColour(ColourDesired fore) { if (context) { - ColourDesired cdFore(fore.AsLong()); + ColourDesired cdFore(fore.AsInteger()); cairo_set_source_rgb(context, cdFore.GetRed() / 255.0, cdFore.GetGreen() / 255.0, @@ -520,7 +520,7 @@ static void PathRoundRectangle(cairo_t *context, double left, double top, double void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize, ColourDesired fill, int alphaFill, ColourDesired outline, int alphaOutline, int /*flags*/) { if (context && rc.Width() > 0) { - ColourDesired cdFill(fill.AsLong()); + ColourDesired cdFill(fill.AsInteger()); cairo_set_source_rgba(context, cdFill.GetRed() / 255.0, cdFill.GetGreen() / 255.0, @@ -532,7 +532,7 @@ void SurfaceImpl::AlphaRectangle(PRectangle rc, int cornerSize, ColourDesired fi cairo_rectangle(context, rc.left + 1.0, rc.top + 1.0, rc.right - rc.left - 2.0, rc.bottom - rc.top - 2.0); cairo_fill(context); - ColourDesired cdOutline(outline.AsLong()); + ColourDesired cdOutline(outline.AsInteger()); cairo_set_source_rgba(context, cdOutline.GetRed() / 255.0, cdOutline.GetGreen() / 255.0, diff --git a/include/Platform.h b/include/Platform.h index fdf41e6e7..d020db883 100644 --- a/include/Platform.h +++ b/include/Platform.h @@ -75,9 +75,6 @@ namespace Scintilla { typedef float XYPOSITION; typedef double XYACCUMULATOR; -inline int RoundXYPosition(XYPOSITION xyPos) { - return static_cast<int>(xyPos + 0.5); -} // Underlying the implementation of the platform classes are platform specific types. // Sometimes these need to be passed around by client code so they are defined here @@ -99,10 +96,10 @@ public: XYPOSITION x; XYPOSITION y; - constexpr explicit Point(XYPOSITION x_=0, XYPOSITION y_=0) : x(x_), y(y_) { + constexpr explicit Point(XYPOSITION x_=0, XYPOSITION y_=0) noexcept : x(x_), y(y_) { } - static Point FromInts(int x_, int y_) { + static Point FromInts(int x_, int y_) noexcept { return Point(static_cast<XYPOSITION>(x_), static_cast<XYPOSITION>(y_)); } @@ -111,7 +108,7 @@ public: /** * A geometric rectangle class. - * PRectangle is similar to the Win32 RECT. + * PRectangle is similar to Win32 RECT. * PRectangles contain their top and left sides, but not their right and bottom sides. */ class PRectangle { @@ -121,47 +118,47 @@ public: XYPOSITION right; XYPOSITION bottom; - explicit PRectangle(XYPOSITION left_=0, XYPOSITION top_=0, XYPOSITION right_=0, XYPOSITION bottom_ = 0) : + constexpr explicit PRectangle(XYPOSITION left_=0, XYPOSITION top_=0, XYPOSITION right_=0, XYPOSITION bottom_ = 0) noexcept : left(left_), top(top_), right(right_), bottom(bottom_) { } - static PRectangle FromInts(int left_, int top_, int right_, int bottom_) { + static PRectangle FromInts(int left_, int top_, int right_, int bottom_) noexcept { return PRectangle(static_cast<XYPOSITION>(left_), static_cast<XYPOSITION>(top_), static_cast<XYPOSITION>(right_), static_cast<XYPOSITION>(bottom_)); } // Other automatically defined methods (assignment, copy constructor, destructor) are fine - bool operator==(const PRectangle &rc) const { + bool operator==(const PRectangle &rc) const noexcept { return (rc.left == left) && (rc.right == right) && (rc.top == top) && (rc.bottom == bottom); } - bool Contains(Point pt) const { + bool Contains(Point pt) const noexcept { return (pt.x >= left) && (pt.x <= right) && (pt.y >= top) && (pt.y <= bottom); } - bool ContainsWholePixel(Point pt) const { + bool ContainsWholePixel(Point pt) const noexcept { // Does the rectangle contain all of the pixel to left/below the point return (pt.x >= left) && ((pt.x+1) <= right) && (pt.y >= top) && ((pt.y+1) <= bottom); } - bool Contains(PRectangle rc) const { + bool Contains(PRectangle rc) const noexcept { return (rc.left >= left) && (rc.right <= right) && (rc.top >= top) && (rc.bottom <= bottom); } - bool Intersects(PRectangle other) const { + bool Intersects(PRectangle other) const noexcept { return (right > other.left) && (left < other.right) && (bottom > other.top) && (top < other.bottom); } - void Move(XYPOSITION xDelta, XYPOSITION yDelta) { + void Move(XYPOSITION xDelta, XYPOSITION yDelta) noexcept { left += xDelta; top += yDelta; right += xDelta; bottom += yDelta; } - XYPOSITION Width() const { return right - left; } - XYPOSITION Height() const { return bottom - top; } - bool Empty() const { + XYPOSITION Width() const noexcept { return right - left; } + XYPOSITION Height() const noexcept { return bottom - top; } + bool Empty() const noexcept { return (Height() <= 0) || (Width() <= 0); } }; @@ -170,62 +167,32 @@ public: * Holds a desired RGB colour. */ class ColourDesired { - long co; + int co; public: - ColourDesired(long lcol=0) { - co = lcol; + ColourDesired(int co_=0) noexcept : co(co_) { } - ColourDesired(unsigned int red, unsigned int green, unsigned int blue) { - Set(red, green, blue); + ColourDesired(unsigned int red, unsigned int green, unsigned int blue) noexcept : + co(red | (green << 8) | (blue << 16)) { } - bool operator==(const ColourDesired &other) const { + bool operator==(const ColourDesired &other) const noexcept { return co == other.co; } - void Set(long lcol) { - co = lcol; - } - - void Set(unsigned int red, unsigned int green, unsigned int blue) { - co = red | (green << 8) | (blue << 16); - } - - static inline unsigned int ValueOfHex(const char ch) { - 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; - } - - void Set(const char *val) { - if (*val == '#') { - val++; - } - 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]); - Set(r, g, b); - } - - long AsLong() const { + int AsInteger() const noexcept { return co; } - unsigned char GetRed() const { + unsigned char GetRed() const noexcept { return co & 0xff; } - unsigned char GetGreen() const { + unsigned char GetGreen() const noexcept { return (co >> 8) & 0xff; } - unsigned char GetBlue() const { + unsigned char GetBlue() const noexcept { return (co >> 16) & 0xff; } }; diff --git a/qt/ScintillaEditBase/PlatQt.h b/qt/ScintillaEditBase/PlatQt.h index 95a84eaf8..00a9645ef 100644 --- a/qt/ScintillaEditBase/PlatQt.h +++ b/qt/ScintillaEditBase/PlatQt.h @@ -26,7 +26,7 @@ const char *CharacterSetID(int characterSet); inline QColor QColorFromCA(ColourDesired ca) { - long c = ca.AsLong(); + long c = ca.AsInteger(); return QColor(c & 0xff, (c >> 8) & 0xff, (c >> 16) & 0xff); } 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; } diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 43b27cf7b..4c57fd133 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -675,7 +675,7 @@ void SurfaceGDI::PenColour(ColourDesired fore) { pen = 0; penOld = 0; } - pen = ::CreatePen(0,1,fore.AsLong()); + pen = ::CreatePen(0,1,fore.AsInteger()); penOld = static_cast<HPEN>(::SelectObject(hdc, pen)); } @@ -687,8 +687,8 @@ void SurfaceGDI::BrushColor(ColourDesired back) { brushOld = 0; } // Only ever want pure, non-dithered brushes - const ColourDesired colourNearest = ColourDesired(::GetNearestColor(hdc, back.AsLong())); - brush = ::CreateSolidBrush(colourNearest.AsLong()); + const ColourDesired colourNearest = ColourDesired(::GetNearestColor(hdc, back.AsInteger())); + brush = ::CreateSolidBrush(colourNearest.AsInteger()); brushOld = SelectBrush(hdc, brush); } void SurfaceGDI::SetFont(Font &font_) { @@ -742,7 +742,7 @@ void SurfaceGDI::FillRectangle(PRectangle rc, ColourDesired back) { // Using ExtTextOut rather than a FillRect ensures that no dithering occurs. // There is no need to allocate a brush either. const RECT rcw = RectFromPRectangle(rc); - ::SetBkColor(hdc, back.AsLong()); + ::SetBkColor(hdc, back.AsInteger()); ::ExtTextOut(hdc, rcw.left, rcw.top, ETO_OPAQUE, &rcw, TEXT(""), 0, NULL); } @@ -930,15 +930,15 @@ void SurfaceGDI::DrawTextCommon(PRectangle rc, Font &font_, XYPOSITION ybase, co void SurfaceGDI::DrawTextNoClip(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore, ColourDesired back) { - ::SetTextColor(hdc, fore.AsLong()); - ::SetBkColor(hdc, back.AsLong()); + ::SetTextColor(hdc, fore.AsInteger()); + ::SetBkColor(hdc, back.AsInteger()); DrawTextCommon(rc, font_, ybase, s, len, ETO_OPAQUE); } void SurfaceGDI::DrawTextClipped(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore, ColourDesired back) { - ::SetTextColor(hdc, fore.AsLong()); - ::SetBkColor(hdc, back.AsLong()); + ::SetTextColor(hdc, fore.AsInteger()); + ::SetBkColor(hdc, back.AsInteger()); DrawTextCommon(rc, font_, ybase, s, len, ETO_OPAQUE | ETO_CLIPPED); } @@ -947,7 +947,7 @@ void SurfaceGDI::DrawTextTransparent(PRectangle rc, Font &font_, XYPOSITION ybas // Avoid drawing spaces in transparent mode for (int i=0; i<len; i++) { if (s[i] != ' ') { - ::SetTextColor(hdc, fore.AsLong()); + ::SetTextColor(hdc, fore.AsInteger()); ::SetBkMode(hdc, TRANSPARENT); DrawTextCommon(rc, font_, ybase, s, len, 0); ::SetBkMode(hdc, OPAQUE); @@ -1261,9 +1261,9 @@ void SurfaceD2D::PenColour(ColourDesired fore) { void SurfaceD2D::D2DPenColour(ColourDesired fore, int alpha) { if (pRenderTarget) { D2D_COLOR_F col; - col.r = (fore.AsLong() & 0xff) / 255.0f; - col.g = ((fore.AsLong() & 0xff00) >> 8) / 255.0f; - col.b = (fore.AsLong() >> 16) / 255.0f; + col.r = (fore.AsInteger() & 0xff) / 255.0f; + col.g = ((fore.AsInteger() & 0xff00) >> 8) / 255.0f; + col.b = (fore.AsInteger() >> 16) / 255.0f; col.a = alpha / 255.0f; if (pBrush) { pBrush->SetColor(col); |