X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d9317fd47263a9521466156d7bf0f7988000bf15..8b6e6947fc8fb946391740d66b140413eccb6b6c:/include/wx/msw/enhmeta.h diff --git a/include/wx/msw/enhmeta.h b/include/wx/msw/enhmeta.h index a7f235453d..bf2574b935 100644 --- a/include/wx/msw/enhmeta.h +++ b/include/wx/msw/enhmeta.h @@ -51,6 +51,11 @@ public: const wxString& GetFileName() const { return m_filename; } + // copy the metafile to the clipboard: the width and height parameters are + // for backwards compatibility (with wxMetaFile) only, they are ignored by + // this method + bool SetClipboard(int width = 0, int height = 0); + // implementation WXHANDLE GetHENHMETAFILE() const { return m_hMF; } void SetHENHMETAFILE(WXHANDLE hMF) { Free(); m_hMF = hMF; } @@ -89,14 +94,14 @@ private: DECLARE_DYNAMIC_CLASS(wxEnhMetaFileDC) }; +#if wxUSE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // wxEnhMetaFileDataObject is a specialization of wxDataObject for enh metafile // ---------------------------------------------------------------------------- -#if wxUSE_DRAG_AND_DROP - // notice that we want to support both CF_METAFILEPICT and CF_ENHMETAFILE and -// so we derive from and not from wxDataObjectSimple +// so we derive from wxDataObject and not from wxDataObjectSimple class WXDLLEXPORT wxEnhMetaFileDataObject : public wxDataObject { public: @@ -125,6 +130,38 @@ protected: wxEnhMetaFile m_metafile; }; + +// ---------------------------------------------------------------------------- +// wxEnhMetaFileSimpleDataObject does derive from wxDataObjectSimple which +// makes it more convenient to use (it can be used with wxDataObjectComposite) +// at the price of not supoprting any more CF_METAFILEPICT but only +// CF_ENHMETAFILE +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxEnhMetaFileSimpleDataObject : public wxDataObjectSimple +{ +public: + // ctors + wxEnhMetaFileSimpleDataObject() : wxDataObjectSimple(wxDF_ENHMETAFILE) { } + wxEnhMetaFileSimpleDataObject(const wxEnhMetaFile& metafile) + : wxDataObjectSimple(wxDF_ENHMETAFILE), 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 SetEnhMetafile(const wxEnhMetaFile& metafile) + { m_metafile = metafile; } + virtual wxEnhMetaFile GetEnhMetafile() 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: + wxEnhMetaFile m_metafile; +}; + #endif // wxUSE_DRAG_AND_DROP #endif // _WX_MSW_ENHMETA_H_