X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/598ddd96f45745188c96f16757f7ceeaa0c8d70d..ce22ac4592fccaedd8324e7a8f08b510748827e4:/src/msw/metafile.cpp diff --git a/src/msw/metafile.cpp b/src/msw/metafile.cpp index ec6f66f44f..f1eb74391e 100644 --- a/src/msw/metafile.cpp +++ b/src/msw/metafile.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/metafile.cpp +// Name: src/msw/metafile.cpp // Purpose: wxMetafileDC etc. // Author: Julian Smart // Modified by: VZ 07.01.00: implemented wxMetaFileDataObject @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "metafile.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,10 +24,6 @@ #pragma hdrstop #endif -#ifndef WX_PRECOMP - #include "wx/setup.h" -#endif - #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/app.h" @@ -130,8 +122,6 @@ bool wxMetafile::Play(wxDC *dc) if (!m_refData) return false; - dc->BeginDrawing(); - if (dc->GetHDC() && M_METAFILEDATA->m_metafile) { if ( !::PlayMetaFile(GetHdcOf(*dc), (HMETAFILE) @@ -141,8 +131,6 @@ bool wxMetafile::Play(wxDC *dc) } } - dc->EndDrawing(); - return true; } @@ -201,9 +189,9 @@ wxMetafileDC::wxMetafileDC(const wxString& file, int xext, int yext, int xorg, i m_minY = 10000; m_maxX = -10000; m_maxY = -10000; - if ( !file.IsEmpty() && wxFileExists(file)) + if ( !file.empty() && wxFileExists(file) ) wxRemoveFile(file); - m_hDC = (WXHDC) CreateMetaFile(file); + m_hDC = (WXHDC) CreateMetaFile(file.empty() ? NULL : file.c_str()); m_ok = true; @@ -232,7 +220,7 @@ void wxMetafileDC::GetTextExtent(const wxString& string, long *x, long *y, SIZE sizeRect; TEXTMETRIC tm; - GetTextExtentPoint(dc, WXSTRINGCAST string, wxStrlen(WXSTRINGCAST string), &sizeRect); + ::GetTextExtentPoint32(dc, WXSTRINGCAST string, wxStrlen(WXSTRINGCAST string), &sizeRect); GetTextMetrics(dc, &tm); ReleaseDC(NULL, dc); @@ -247,6 +235,16 @@ void wxMetafileDC::GetTextExtent(const wxString& string, long *x, long *y, *externalLeading = tm.tmExternalLeading; } +void wxMetafileDC::DoGetSize(int *width, int *height) const +{ + wxCHECK_RET( m_refData, _T("invalid wxMetafileDC") ); + + if ( width ) + *width = M_METAFILEDATA->m_width; + if ( height ) + *height = M_METAFILEDATA->m_height; +} + wxMetafile *wxMetafileDC::Close() { SelectOldObjects(m_hDC); @@ -515,4 +513,3 @@ bool wxMetafileDataObject::SetData(size_t WXUNUSED(len), const void *buf) #endif // wxUSE_DRAG_AND_DROP #endif // wxUSE_METAFILE -