From: Vadim Zeitlin Date: Tue, 19 Jul 2011 22:35:41 +0000 (+0000) Subject: Added wxGCDC(wxEnhMetaFileDC) ctor too. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2d770c4f8204938933914a961d4142f97ec12f50?ds=inline Added wxGCDC(wxEnhMetaFileDC) ctor too. Make it possible to create wxGCDC associated with a metafile DC in wxMSW too. Closes #13326. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 22a7ec3bdc..ee0d0fc1c0 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -450,6 +450,10 @@ GTK: - Generate events for two auxiliary mouse buttons in wxGTK (Marcin Wojdyr). +MSW: + +- Added wxGCDC(wxEnhMetaFileDC) ctor (Marcin Wojdyr). + 2.9.2: (released 2011-07-05) ------ diff --git a/include/wx/dcgraph.h b/include/wx/dcgraph.h index 15369a32fe..38ebbb61cc 100644 --- a/include/wx/dcgraph.h +++ b/include/wx/dcgraph.h @@ -28,6 +28,9 @@ public: wxGCDC( const wxMemoryDC& dc ); #if wxUSE_PRINTING_ARCHITECTURE wxGCDC( const wxPrinterDC& dc ); +#endif +#if defined(__WXMSW__) && wxUSE_ENH_METAFILE + wxGCDC( const wxEnhMetaFileDC& dc ); #endif wxGCDC(); virtual ~wxGCDC(); @@ -55,6 +58,9 @@ public: wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ); #if wxUSE_PRINTING_ARCHITECTURE wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ); +#endif +#if defined(__WXMSW__) && wxUSE_ENH_METAFILE + wxGCDCImpl( wxDC *owner, const wxEnhMetaFileDC& dc ); #endif wxGCDCImpl( wxDC *owner ); diff --git a/interface/wx/dcgraph.h b/interface/wx/dcgraph.h index acd5b58b2d..5d086485c1 100644 --- a/interface/wx/dcgraph.h +++ b/interface/wx/dcgraph.h @@ -35,6 +35,17 @@ public: */ wxGCDC( const wxPrinterDC& dc ); + /** + Constructs a wxGCDC from a wxEnhMetaFileDC. + + This constructor is only available in wxMSW port and when @c + wxUSE_ENH_METAFILE build option is enabled, i.e. when wxEnhMetaFileDC + class itself is available. + + @since 2.9.3 + */ + wxGCDC( const wxEnhMetaFileDC& dc ); + /** Retrieves associated wxGraphicsContext */ diff --git a/src/common/dcgraph.cpp b/src/common/dcgraph.cpp index 0582a2e025..a06cd25382 100644 --- a/src/common/dcgraph.cpp +++ b/src/common/dcgraph.cpp @@ -114,6 +114,13 @@ wxGCDC::wxGCDC( const wxPrinterDC& dc) : } #endif +#if defined(__WXMSW__) && wxUSE_ENH_METAFILE +wxGCDC::wxGCDC(const wxEnhMetaFileDC& dc) + : wxDC(new wxGCDCImpl(this, dc)) +{ +} +#endif + wxGCDC::wxGCDC() : wxDC( new wxGCDCImpl( this ) ) { @@ -193,6 +200,15 @@ wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ) : } #endif +#if defined(__WXMSW__) && wxUSE_ENH_METAFILE +wxGCDCImpl::wxGCDCImpl(wxDC *owner, const wxEnhMetaFileDC& dc) + : wxDCImpl(owner) +{ + Init(); + SetGraphicsContext(wxGraphicsContext::Create(dc)); +} +#endif + void wxGCDCImpl::Init() { m_ok = false;