+// ----------------------------------------------------------------------------
+// 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
+{
+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:
+ wxMetafile m_metafile;
+ int m_width;
+ int m_height;
+};
+#endif
+
+#endif // wxUSE_METAFILE