From d2bb3203067343b51bf3c543b331741f6fa4ad21 Mon Sep 17 00:00:00 2001 From: Neil Date: Sun, 7 Apr 2019 12:20:58 +1000 Subject: Make XPM, RGBAImage, and LineMarker copyable and noexcept moveable. This simplifies and optimizes their use in other classes and containers. --- src/LineMarker.h | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src/LineMarker.h') diff --git a/src/LineMarker.h b/src/LineMarker.h index 28a63cd3b..8a15327d2 100644 --- a/src/LineMarker.h +++ b/src/LineMarker.h @@ -21,22 +21,26 @@ class LineMarker { public: enum typeOfFold { undefined, head, body, tail, headWithTail }; - int markType; - ColourDesired fore; - ColourDesired back; - ColourDesired backSelected; - int alpha; + int markType = SC_MARK_CIRCLE; + ColourDesired fore = ColourDesired(0, 0, 0); + ColourDesired back = ColourDesired(0xff, 0xff, 0xff); + ColourDesired backSelected = ColourDesired(0xff, 0x00, 0x00); + int alpha = SC_ALPHA_NOALPHA; std::unique_ptr pxpm; std::unique_ptr image; /** Some platforms, notably PLAT_CURSES, do not support Scintilla's native * Draw function for drawing line markers. Allow those platforms to override * it instead of creating a new method(s) in the Surface class that existing * platforms must implement as empty. */ - DrawLineMarkerFn customDraw; - LineMarker(); - LineMarker(const LineMarker &); - virtual ~LineMarker(); - LineMarker &operator=(const LineMarker &other); + DrawLineMarkerFn customDraw = nullptr; + + LineMarker() noexcept = default; + LineMarker(const LineMarker &other); + LineMarker(LineMarker &&) noexcept = default; + LineMarker &operator=(const LineMarker& other); + LineMarker &operator=(LineMarker&&) noexcept = default; + virtual ~LineMarker() = default; + void SetXPM(const char *textForm); void SetXPM(const char *const *linesForm); void SetRGBAImage(Point sizeRGBAImage, float scale, const unsigned char *pixelsRGBAImage); -- cgit v1.2.3