From 1fa4efc47e5d3ff23fe9dcd7c44c027439599a90 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Wed, 16 Mar 2016 21:41:20 +0100 Subject: [PATCH] Implemented measuring context for Cairo renderer (wxMSW). --- src/generic/graphicc.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/generic/graphicc.cpp b/src/generic/graphicc.cpp index 09583ce5b4..2aa701358d 100644 --- a/src/generic/graphicc.cpp +++ b/src/generic/graphicc.cpp @@ -527,6 +527,25 @@ private: }; #endif // wxUSE_IMAGE +#ifdef __WXMSW__ +class wxCairoMeasuringContext : public wxCairoContext +{ +public: + wxCairoMeasuringContext(wxGraphicsRenderer* renderer) + : wxCairoContext(renderer, m_hdc = ::GetDC(NULL)) + { + } + + virtual ~wxCairoMeasuringContext() + { + ::ReleaseDC(NULL, m_hdc); + } + +private: + HDC m_hdc; +}; +#endif // __WXMSW__ + // ---------------------------------------------------------------------------- // wxCairoPenBrushBaseData implementation //----------------------------------------------------------------------------- @@ -2575,6 +2594,9 @@ wxGraphicsContext * wxCairoRenderer::CreateMeasuringContext() { #ifdef __WXGTK__ return CreateContextFromNativeWindow(gdk_get_default_root_window()); +#elif defined(__WXMSW__) + ENSURE_LOADED_OR_RETURN(NULL); + return new wxCairoMeasuringContext(this); #else return NULL; // TODO