From d059caa7de9b923feb5a2e00c62970d519420442 Mon Sep 17 00:00:00 2001 From: Hombre Date: Tue, 19 Mar 2019 20:45:12 +0100 Subject: [PATCH] Enhancing RTSurface: 'surface' now private --- rtgui/edit.cc | 2 +- rtgui/lwbutton.cc | 2 +- rtgui/rtsurface.cc | 5 +++++ rtgui/rtsurface.h | 7 ++++++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/rtgui/edit.cc b/rtgui/edit.cc index eb91d3fda..c59c2dc04 100644 --- a/rtgui/edit.cc +++ b/rtgui/edit.cc @@ -896,7 +896,7 @@ void OPIcon::drawImage(Cairo::RefPtr &img, rtengine::Coord tl, br; // Coordinate of the rectangle in the CropBuffer coordinate system drivenPointToRectangle(pos, tl, br, imgW, imgH); - cr->set_source(img->surface, tl.x, tl.y); + cr->set_source(img->get(), tl.x, tl.y); cr->set_line_width(0.); cr->rectangle(tl.x, tl.y, imgW, imgH); cr->fill(); diff --git a/rtgui/lwbutton.cc b/rtgui/lwbutton.cc index b1ed940c2..48843a02e 100644 --- a/rtgui/lwbutton.cc +++ b/rtgui/lwbutton.cc @@ -205,7 +205,7 @@ void LWButton::redraw (Cairo::RefPtr context) } if (icon) { - context->set_source (icon->surface, xpos + dilat, ypos + dilat); + context->set_source (icon->get(), xpos + dilat, ypos + dilat); context->paint (); } } diff --git a/rtgui/rtsurface.cc b/rtgui/rtsurface.cc index faf1a750d..9f692878d 100644 --- a/rtgui/rtsurface.cc +++ b/rtgui/rtsurface.cc @@ -132,3 +132,8 @@ bool RTSurface::hasSurface() const { return surface ? true : false; } + +const Cairo::RefPtr& RTSurface::get() const +{ + return surface; +} diff --git a/rtgui/rtsurface.h b/rtgui/rtsurface.h index 58093d323..d55506269 100644 --- a/rtgui/rtsurface.h +++ b/rtgui/rtsurface.h @@ -26,12 +26,15 @@ */ class RTSurface : public RTScalable { + +private: + static double dpiBack; // used to keep track of master dpi change static int scaleBack; // used to keep track of master scale change + Cairo::RefPtr surface; void changeImage (Glib::ustring imageName); public: - Cairo::RefPtr surface; RTSurface (); RTSurface (const RTSurface& other); @@ -42,6 +45,8 @@ public: int getHeight() const; bool hasSurface() const; + const Cairo::RefPtr& get() const; + static void init(); static void updateImages (); static void setDPInScale (const double newDPI, const int newScale);