git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51175
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
int GetWindowsMappingMode() const { return M_METAFILEDATA->m_windowsMappingMode; }
void SetWindowsMappingMode(int mm);
int GetWindowsMappingMode() const { return M_METAFILEDATA->m_windowsMappingMode; }
void SetWindowsMappingMode(int mm);
+protected:
+ virtual wxGDIRefData *CreateGDIRefData() const;
+ virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
+
private:
DECLARE_DYNAMIC_CLASS(wxMetafile)
};
private:
DECLARE_DYNAMIC_CLASS(wxMetafile)
};
class WXDLLEXPORT wxMetafileDCImpl: public wxMSWDCImpl
{
public:
class WXDLLEXPORT wxMetafileDCImpl: public wxMSWDCImpl
{
public:
- wxMetafileDCImpl(const wxString& file = wxEmptyString);
- wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg);
+ wxMetafileDCImpl(wxDC *owner, const wxString& file = wxEmptyString);
+ wxMetafileDCImpl(wxDC *owner, const wxString& file,
+ int xext, int yext, int xorg, int yorg);
virtual ~wxMetafileDCImpl();
virtual wxMetafile *Close();
virtual ~wxMetafileDCImpl();
virtual wxMetafile *Close();
protected:
virtual void DoGetSize(int *width, int *height) const;
protected:
virtual void DoGetSize(int *width, int *height) const;
- virtual wxGDIRefData *CreateGDIRefData() const;
- virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
-
int m_windowsMappingMode;
wxMetafile* m_metaFile;
int m_windowsMappingMode;
wxMetafile* m_metaFile;
public:
// Don't supply origin and extent
// Supply them to wxMakeMetaFilePlaceable instead.
public:
// Don't supply origin and extent
// Supply them to wxMakeMetaFilePlaceable instead.
- wxMetafileDC(const wxString& file);
- { m_pimpl = new wxMetafileDCImpl( this, file ); }
+ wxMetafileDC(const wxString& file)
+ : wxDC(new wxMetafileDCImpl( this, file ))
+ { }
// Supply origin and extent (recommended).
// Then don't need to supply them to wxMakeMetaFilePlaceable.
wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg)
// Supply origin and extent (recommended).
// Then don't need to supply them to wxMakeMetaFilePlaceable.
wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg)
- { m_pimpl = new wxMetafileDCImpl( this, file, xext, yext, xorg, yorg ); }
+ : wxDC(new wxMetafileDCImpl( this, file, xext, yext, xorg, yorg ))
+ { }
wxMetafile *GetMetafile() const
{ return ((wxMetafileDCImpl*)m_pimpl)->GetMetaFile(); }
wxMetafile *GetMetafile() const
{ return ((wxMetafileDCImpl*)m_pimpl)->GetMetaFile(); }
wxGDIRefData *wxMetafile::CloneGDIRefData(const wxGDIRefData *data) const
{
wxGDIRefData *wxMetafile::CloneGDIRefData(const wxGDIRefData *data) const
{
- return new wxMetafileRefData(wx_static_cast(wxMetafileRefData *, data));
+ return new wxMetafileRefData(*wx_static_cast(const wxMetafileRefData *, data));
}
bool wxMetafile::SetClipboard(int width, int height)
}
bool wxMetafile::SetClipboard(int width, int height)
// Original constructor that does not takes origin and extent. If you use this,
// *DO* give origin/extent arguments to wxMakeMetafilePlaceable.
// Original constructor that does not takes origin and extent. If you use this,
// *DO* give origin/extent arguments to wxMakeMetafilePlaceable.
-wxMetafileDC::wxMetafileDC(const wxString& file)
+wxMetafileDCImpl::wxMetafileDCImpl(wxDC *owner, const wxString& file)
+ : wxMSWDCImpl(owner)
{
m_metaFile = NULL;
m_minX = 10000;
{
m_metaFile = NULL;
m_minX = 10000;
// New constructor that takes origin and extent. If you use this, don't
// give origin/extent arguments to wxMakeMetafilePlaceable.
// New constructor that takes origin and extent. If you use this, don't
// give origin/extent arguments to wxMakeMetafilePlaceable.
-wxMetafileDC::wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg)
+wxMetafileDCImpl::wxMetafileDCImpl(wxDC *owner, const wxString& file,
+ int xext, int yext, int xorg, int yorg)
+ : wxMSWDCImpl(owner)
{
m_minX = 10000;
m_minY = 10000;
{
m_minX = 10000;
m_minY = 10000;
SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
}
SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
}
-wxMetafileDC::~wxMetafileDC()
+wxMetafileDCImpl::~wxMetafileDCImpl()
-void wxMetafileDC::DoGetTextExtent(const wxString& string,
- wxCoord *x, wxCoord *y,
- wxCoord *descent, wxCoord *externalLeading,
- const wxFont *theFont) const
+void wxMetafileDCImpl::DoGetTextExtent(const wxString& string,
+ wxCoord *x, wxCoord *y,
+ wxCoord *descent, wxCoord *externalLeading,
+ const wxFont *theFont) const
{
const wxFont *fontToUse = theFont;
if (!fontToUse)
{
const wxFont *fontToUse = theFont;
if (!fontToUse)
*externalLeading = tm.tmExternalLeading;
}
*externalLeading = tm.tmExternalLeading;
}
-void wxMetafileDC::DoGetSize(int *width, int *height) const
+void wxMetafileDCImpl::DoGetSize(int *width, int *height) const
{
wxCHECK_RET( m_refData, _T("invalid wxMetafileDC") );
{
wxCHECK_RET( m_refData, _T("invalid wxMetafileDC") );
*height = M_METAFILEDATA->m_height;
}
*height = M_METAFILEDATA->m_height;
}
-wxMetafile *wxMetafileDC::Close()
+wxMetafile *wxMetafileDCImpl::Close()
{
SelectOldObjects(m_hDC);
HANDLE mf = CloseMetaFile((HDC) m_hDC);
{
SelectOldObjects(m_hDC);
HANDLE mf = CloseMetaFile((HDC) m_hDC);
-void wxMetafileDC::SetMapMode(int mode)
+void wxMetafileDCImpl::SetMapMode(int mode)