From 773ccc318e21e2ce170789aaaaaa18b8b0f1878e Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Mon, 6 Nov 2006 09:47:20 +0000 Subject: [PATCH] adapting to new inheritance of wxMemoryDC (under MSW only at the moment) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/dcgraph.h | 3 +++ include/wx/graphics.h | 9 ++++++++- src/common/dcgraph.cpp | 8 ++++++++ src/common/graphcmn.cpp | 6 ++++++ src/generic/graphicc.cpp | 11 +++++++++++ src/msw/graphics.cpp | 8 ++++++++ 6 files changed, 44 insertions(+), 1 deletion(-) diff --git a/include/wx/dcgraph.h b/include/wx/dcgraph.h index f5a77adae2..091ebdfc32 100755 --- a/include/wx/dcgraph.h +++ b/include/wx/dcgraph.h @@ -36,6 +36,9 @@ class WXDLLEXPORT wxGCDC: public: wxGCDC(const wxWindowDC& dc); +#ifdef __WXMSW__ + wxGCDC( const wxMemoryDC& dc); +#endif wxGCDC(); virtual ~wxGCDC(); diff --git a/include/wx/graphics.h b/include/wx/graphics.h index 1d8fcd3c17..ef18b3ed15 100755 --- a/include/wx/graphics.h +++ b/include/wx/graphics.h @@ -18,6 +18,7 @@ #include "wx/dynarray.h" class WXDLLIMPEXP_CORE wxWindowDC; +class WXDLLIMPEXP_CORE wxMemoryDC; class WXDLLIMPEXP_CORE wxGraphicsContext; class WXDLLIMPEXP_CORE wxGraphicsPath; class WXDLLIMPEXP_CORE wxGraphicsMatrix; @@ -387,6 +388,10 @@ public: static wxGraphicsContext* Create( const wxWindowDC& dc) ; +#ifdef __WXMSW__ + static wxGraphicsContext * Create( const wxMemoryDC& dc) ; +#endif + static wxGraphicsContext* CreateFromNative( void * context ) ; static wxGraphicsContext* CreateFromNativeWindow( void * window ) ; @@ -605,7 +610,9 @@ public : // Context virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc) = 0 ; - +#ifdef __WXMSW__ + virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0 ; +#endif virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0; virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window ) = 0; diff --git a/src/common/dcgraph.cpp b/src/common/dcgraph.cpp index 94f1644665..fc1a6a89e7 100644 --- a/src/common/dcgraph.cpp +++ b/src/common/dcgraph.cpp @@ -83,6 +83,14 @@ wxGCDC::wxGCDC(const wxWindowDC& dc) SetGraphicsContext( wxGraphicsContext::Create(dc) ); } +#ifdef __WXMSW__ +wxGCDC::wxGCDC(const wxMemoryDC& dc) +{ + Init(); + SetGraphicsContext( wxGraphicsContext::Create(dc) ); +} +#endif + void wxGCDC::Init() { m_ok = false; diff --git a/src/common/graphcmn.cpp b/src/common/graphcmn.cpp index 91894232e4..fe68a237c5 100644 --- a/src/common/graphcmn.cpp +++ b/src/common/graphcmn.cpp @@ -707,6 +707,12 @@ wxGraphicsContext* wxGraphicsContext::Create( const wxWindowDC& dc) { return wxGraphicsRenderer::GetDefaultRenderer()->CreateContext(dc); } +#ifdef __WXMSW__ +wxGraphicsContext* wxGraphicsContext::Create( const wxMemoryDC& dc) +{ + return wxGraphicsRenderer::GetDefaultRenderer()->CreateContext(dc); +} +#endif wxGraphicsContext* wxGraphicsContext::CreateFromNative( void * context ) { diff --git a/src/generic/graphicc.cpp b/src/generic/graphicc.cpp index a4d2e774e1..04e918bab1 100755 --- a/src/generic/graphicc.cpp +++ b/src/generic/graphicc.cpp @@ -1166,6 +1166,10 @@ public : virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc); +#ifdef __WXMSW__ + virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc); +#endif + virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ); virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window ); @@ -1224,6 +1228,13 @@ wxGraphicsContext * wxCairoRenderer::CreateContext( const wxWindowDC& dc) return new wxCairoContext(this,dc); } +#ifdef __WXMSW__ +wxGraphicsContext * wxCairoRenderer::CreateContext( const wxMemoryDC& dc) +{ + return NULL; +} +#endif + wxGraphicsContext * wxCairoRenderer::CreateContextFromNativeContext( void * context ) { return new wxCairoContext(this,(cairo_t*)context); diff --git a/src/msw/graphics.cpp b/src/msw/graphics.cpp index 612e8e926d..cda93a281a 100644 --- a/src/msw/graphics.cpp +++ b/src/msw/graphics.cpp @@ -1227,6 +1227,8 @@ public : virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc); + virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc); + virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ); virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window ); @@ -1313,6 +1315,12 @@ wxGraphicsContext * wxGDIPlusRenderer::CreateContext( const wxWindowDC& dc) return new wxGDIPlusContext(this,(HDC) dc.GetHDC()); } +wxGraphicsContext * wxGDIPlusRenderer::CreateContext( const wxMemoryDC& dc) +{ + EnsureIsLoaded(); + return new wxGDIPlusContext(this,(HDC) dc.GetHDC()); +} + wxGraphicsContext * wxGDIPlusRenderer::CreateMeasuringContext() { EnsureIsLoaded(); -- 2.45.2