]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxGraphicsContext::Create(const wxEnhMetaFileDC& dc) so that wxPrintPreview...
authorJaakko Salli <jaakko.salli@dnainternet.net>
Thu, 13 May 2010 08:22:36 +0000 (08:22 +0000)
committerJaakko Salli <jaakko.salli@dnainternet.net>
Thu, 13 May 2010 08:22:36 +0000 (08:22 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/graphics.h
samples/printing/printing.cpp
src/common/graphcmn.cpp
src/msw/graphics.cpp

index 915cbfd4e197e07ebc6ae6a412e64216070333e8..b42c0ad1def8418603d2187522c39fd42c595434 100644 (file)
@@ -57,6 +57,7 @@ class WXDLLIMPEXP_FWD_CORE wxWindowDC;
 class WXDLLIMPEXP_FWD_CORE wxMemoryDC;
 #if wxUSE_PRINTING_ARCHITECTURE
 class WXDLLIMPEXP_FWD_CORE wxPrinterDC;
 class WXDLLIMPEXP_FWD_CORE wxMemoryDC;
 #if wxUSE_PRINTING_ARCHITECTURE
 class WXDLLIMPEXP_FWD_CORE wxPrinterDC;
+class WXDLLIMPEXP_FWD_CORE wxEnhMetaFileDC;
 #endif
 class WXDLLIMPEXP_FWD_CORE wxGraphicsContext;
 class WXDLLIMPEXP_FWD_CORE wxGraphicsPath;
 #endif
 class WXDLLIMPEXP_FWD_CORE wxGraphicsContext;
 class WXDLLIMPEXP_FWD_CORE wxGraphicsPath;
@@ -392,7 +393,10 @@ public:
     static wxGraphicsContext * Create( const wxMemoryDC& dc);
 #if wxUSE_PRINTING_ARCHITECTURE
     static wxGraphicsContext * Create( const wxPrinterDC& dc);
     static wxGraphicsContext * Create( const wxMemoryDC& dc);
 #if wxUSE_PRINTING_ARCHITECTURE
     static wxGraphicsContext * Create( const wxPrinterDC& dc);
+#ifdef __WXMSW__
+    static wxGraphicsContext * Create( const wxEnhMetaFileDC& dc);
 #endif
 #endif
+#endif // wxUSE_PRINTING_ARCHITECTURE
 
     static wxGraphicsContext* CreateFromNative( void * context );
 
 
     static wxGraphicsContext* CreateFromNative( void * context );
 
@@ -710,7 +714,10 @@ public:
     virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0;
 #if wxUSE_PRINTING_ARCHITECTURE
     virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc) = 0;
     virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0;
 #if wxUSE_PRINTING_ARCHITECTURE
     virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc) = 0;
+#ifdef __WXMSW__
+    virtual wxGraphicsContext * CreateContext( const wxEnhMetaFileDC& dc) = 0;
 #endif
 #endif
+#endif // wxUSE_PRINTING_ARCHITECTURE
 
     virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0;
 
 
     virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0;
 
index e79361807ea8beaefcf5b32120911cccfea0d758..7b172efb7fc1e23718d8b1a7dc6f3dc104dc4e3d 100644 (file)
@@ -230,6 +230,12 @@ void MyApp::Draw(wxDC&dc)
     if (window_dc)
         gc = wxGraphicsContext::Create( *window_dc );
 
     if (window_dc)
         gc = wxGraphicsContext::Create( *window_dc );
 
+#ifdef __WXMSW__
+    wxEnhMetaFileDC *emf_dc = wxDynamicCast( &dc, wxEnhMetaFileDC );
+    if (emf_dc)
+        gc = wxGraphicsContext::Create( *emf_dc );
+#endif
+
     if (gc)
     {
         // make a path that contains a circle and some lines, centered at 100,100
     if (gc)
     {
         // make a path that contains a circle and some lines, centered at 100,100
index 7ab4da0b5ca535759d92828398e0f17cc397f06f..0c24351e7e2b049f43a8a2b4e4cf476739fd64f1 100644 (file)
@@ -870,8 +870,16 @@ wxGraphicsBitmap wxGraphicsContext::CreateSubBitmap( const wxGraphicsBitmap &bmp
 {
     return wxGraphicsRenderer::GetDefaultRenderer()->CreateContext(dc);
 }
 {
     return wxGraphicsRenderer::GetDefaultRenderer()->CreateContext(dc);
 }
+
+#ifdef __WXMSW__
+/* static */ wxGraphicsContext* wxGraphicsContext::Create( const wxEnhMetaFileDC& dc)
+{
+    return wxGraphicsRenderer::GetDefaultRenderer()->CreateContext(dc);
+}
 #endif
 
 #endif
 
+#endif // wxUSE_PRINTING_ARCHITECTURE
+
 wxGraphicsContext* wxGraphicsContext::CreateFromNative( void * context )
 {
     return wxGraphicsRenderer::GetDefaultRenderer()->CreateContextFromNativeContext(context);
 wxGraphicsContext* wxGraphicsContext::CreateFromNative( void * context )
 {
     return wxGraphicsRenderer::GetDefaultRenderer()->CreateContextFromNativeContext(context);
index 65377a464ec662a6d0bc10fb399197d21bf6a6ad..288997c7c1fbf9f4ca2fdcaa25755ff3b3291a37 100644 (file)
@@ -40,6 +40,7 @@
 #include "wx/private/graphics.h"
 #include "wx/msw/wrapgdip.h"
 #include "wx/msw/dc.h"
 #include "wx/private/graphics.h"
 #include "wx/msw/wrapgdip.h"
 #include "wx/msw/dc.h"
+#include "wx/msw/enhmeta.h"
 #include "wx/dcgraph.h"
 
 #include "wx/msw/private.h" // needs to be before #include <commdlg.h>
 #include "wx/dcgraph.h"
 
 #include "wx/msw/private.h" // needs to be before #include <commdlg.h>
@@ -1631,6 +1632,8 @@ public :
 
     virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc);
 
 
     virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc);
 
+    virtual wxGraphicsContext * CreateContext( const wxEnhMetaFileDC& dc);
+
     virtual wxGraphicsContext * CreateContextFromNativeContext( void * context );
 
     virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window );
     virtual wxGraphicsContext * CreateContextFromNativeContext( void * context );
 
     virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window );
@@ -1763,6 +1766,14 @@ wxGraphicsContext * wxGDIPlusRenderer::CreateContext( const wxPrinterDC& dc)
     return new wxGDIPlusContext(this,(HDC) msw->GetHDC(), sz.x, sz.y);
 }
 
     return new wxGDIPlusContext(this,(HDC) msw->GetHDC(), sz.x, sz.y);
 }
 
+wxGraphicsContext * wxGDIPlusRenderer::CreateContext( const wxEnhMetaFileDC& dc)
+{
+    ENSURE_LOADED_OR_RETURN(NULL);
+    wxMSWDCImpl *msw = wxDynamicCast( dc.GetImpl() , wxMSWDCImpl );
+    wxSize sz = dc.GetSize();
+    return new wxGDIPlusContext(this,(HDC) msw->GetHDC(), sz.x, sz.y);
+}
+
 wxGraphicsContext * wxGDIPlusRenderer::CreateContext( const wxMemoryDC& dc)
 {
     ENSURE_LOADED_OR_RETURN(NULL);
 wxGraphicsContext * wxGDIPlusRenderer::CreateContext( const wxMemoryDC& dc)
 {
     ENSURE_LOADED_OR_RETURN(NULL);