// Purpose: wxMetaFile, wxMetaFileDC classes.
// This probably should be restricted to Windows platforms,
// but if there is an equivalent on your platform, great.
-// Author: AUTHOR
+// Author: Stefan Csomor
// Modified by:
-// Created: ??/??/98
+// Created: 1998-01-01
// RCS-ID: $Id$
-// Copyright: (c) AUTHOR
-// Licence: wxWindows licence
+// Copyright: (c) Stefan Csomor
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/dc.h"
#include "wx/gdiobj.h"
-#if wxUSE_DRAG_AND_DROP
+#if wxUSE_DATAOBJ
#include "wx/dataobj.h"
#endif
~wxMetafileRefData(void);
public:
- PicHandle m_metafile;
+ WXHMETAFILE m_metafile;
};
#define M_METAFILEDATA ((wxMetafileRefData *)m_refData)
DECLARE_DYNAMIC_CLASS(wxMetafile)
public:
// Copy constructor
- inline wxMetafile(const wxMetafile& metafile)
+ wxMetafile(const wxMetafile& metafile)
+ : wxGDIObject()
{ Ref(metafile); }
- wxMetafile(const wxString& file = "");
+ wxMetafile(const wxString& file = wxEmptyString);
~wxMetafile(void);
// After this is called, the metafile cannot be used for anything
inline bool Ok(void) const { return (M_METAFILEDATA && (M_METAFILEDATA->m_metafile != 0)); };
// Implementation
- inline PicHandle GetHMETAFILE(void) { return M_METAFILEDATA->m_metafile; }
- void SetHMETAFILE(PicHandle mf) ;
+ inline WXHMETAFILE GetHMETAFILE(void) { return M_METAFILEDATA->m_metafile; }
+ void SetHMETAFILE(WXHMETAFILE mf) ;
// Operators
inline wxMetafile& operator = (const wxMetafile& metafile) { if (*this == metafile) return (*this); Ref(metafile); return *this; }
public:
// Don't supply origin and extent
// Supply them to wxMakeMetaFilePlaceable instead.
- wxMetafileDC(const wxString& file = "");
+ wxMetafileDC(const wxString& file = wxEmptyString);
// Supply origin and extent (recommended).
// Then don't need to supply them to wxMakeMetaFilePlaceable.
// wxMetafileDataObject is a specialization of wxDataObject for metafile data
// ----------------------------------------------------------------------------
-// TODO: implement OLE side of things. At present, it's just for clipboard
-// use.
-
-#if wxUSE_DRAG_AND_DROP
-class WXDLLEXPORT wxMetafileDataObject : public wxDataObject
+#if wxUSE_DATAOBJ
+class WXDLLEXPORT wxMetafileDataObject : public wxDataObjectSimple
{
public:
// ctors
- wxMetafileDataObject() { m_width = 0; m_height = 0; };
- wxMetafileDataObject(const wxMetafile& metafile, int width = 0, int height = 0):
- m_metafile(metafile), m_width(width), m_height(height) { }
-
- void SetMetafile(const wxMetafile& metafile, int w = 0, int h = 0)
- { m_metafile = metafile; m_width = w; m_height = h; }
- wxMetafile GetMetafile() const { return m_metafile; }
- int GetWidth() const { return m_width; }
- int GetHeight() const { return m_height; }
-
- virtual wxDataFormat GetFormat() const { return wxDF_METAFILE; }
-
-/* ??
- // implement base class pure virtuals
- virtual wxDataFormat GetPreferredFormat() const
- { return (wxDataFormat) wxDataObject::Text; }
- virtual bool IsSupportedFormat(wxDataFormat format) const
- { return format == wxDataObject::Text || format == wxDataObject::Locale; }
- virtual size_t GetDataSize() const
- { return m_strText.Len() + 1; } // +1 for trailing '\0'of course
- virtual void GetDataHere(void *pBuf) const
- { memcpy(pBuf, m_strText.c_str(), GetDataSize()); }
-*/
-
-private:
+ wxMetafileDataObject()
+ : wxDataObjectSimple(wxDF_METAFILE) { };
+ wxMetafileDataObject(const wxMetafile& metafile)
+ : wxDataObjectSimple(wxDF_METAFILE), m_metafile(metafile) { }
+
+ // virtual functions which you may override if you want to provide data on
+ // demand only - otherwise, the trivial default versions will be used
+ virtual void SetMetafile(const wxMetafile& metafile)
+ { m_metafile = metafile; }
+ virtual wxMetafile GetMetafile() const
+ { return m_metafile; }
+
+ // implement base class pure virtuals
+ virtual size_t GetDataSize() const;
+ virtual bool GetDataHere(void *buf) const;
+ virtual bool SetData(size_t len, const void *buf);
+
+protected:
wxMetafile m_metafile;
- int m_width;
- int m_height;
};
#endif