X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3cda63537ebeb531ef272910b574a28c483be69e..a23fd0e1d1329a4a258b4defb3e0b0001b700c6e:/include/wx/msw/ole/dataobj.h diff --git a/include/wx/msw/ole/dataobj.h b/include/wx/msw/ole/dataobj.h index 0f952805d1..80a1e13e43 100644 --- a/include/wx/msw/ole/dataobj.h +++ b/include/wx/msw/ole/dataobj.h @@ -25,7 +25,7 @@ struct IDataObject; // do if we really want them) // ---------------------------------------------------------------------------- -class wxDataObject +class WXDLLEXPORT wxDataObject { public: // all data formats (values are the same as in windows.h, do not change!) @@ -73,6 +73,9 @@ public: // retrieve IDataObject interface (for other OLE related classes) IDataObject *GetInterface() const { return m_pIDataObject; } + ////// wxGTK compatibility: hopefully to become the preferred API. + virtual wxDataFormat GetFormat() const { return GetPreferredFormat(); } + private: IDataObject *m_pIDataObject; // pointer to the COM interface }; @@ -80,11 +83,11 @@ private: // ---------------------------------------------------------------------------- // wxTextDataObject is a specialization of wxDataObject for text data // ---------------------------------------------------------------------------- -class wxTextDataObject : public wxDataObject +class WXDLLEXPORT wxTextDataObject : public wxDataObject { public: // ctors - wxTextDataObject(); + wxTextDataObject() { } wxTextDataObject(const wxString& strText) : m_strText(strText) { } void Init(const wxString& strText) { m_strText = strText; } @@ -98,6 +101,11 @@ public: virtual void GetDataHere(void *pBuf) const { memcpy(pBuf, m_strText.c_str(), GetDataSize()); } + ////// wxGTK compatibility: hopefully to become the preferred API. + void SetText(const wxString& strText) { m_strText = strText; } + wxString GetText() const { return m_strText; } + virtual wxDataFormat GetFormat() const { return wxDF_TEXT; } + private: wxString m_strText; }; @@ -106,4 +114,42 @@ private: // @@@ TODO: wx{Bitmap|Metafile|...}DataObject // ---------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// wxBitmapDataObject is a specialization of wxDataObject for bitmap data +// ---------------------------------------------------------------------------- + +// TODO: implement OLE side of things. At present, it's just for clipboard +// use. +class WXDLLEXPORT wxBitmapDataObject : public wxDataObject +{ +public: + // ctors + wxBitmapDataObject() {}; + wxBitmapDataObject(const wxBitmap& bitmap): m_bitmap(bitmap) {} + void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; } + wxBitmap GetBitmap() const { return m_bitmap; } + + virtual wxDataFormat GetFormat() const { return wxDF_BITMAP; } + + // implement base class pure virtuals + virtual wxDataFormat GetPreferredFormat() const + { return (wxDataFormat) wxDataObject::Bitmap; } + virtual bool IsSupportedFormat(wxDataFormat format) const + { return format == wxDataObject::Bitmap; } + virtual size_t GetDataSize() const + { wxASSERT(false); return 0; } // BEMIMP + virtual void GetDataHere(void *pBuf) const + { wxASSERT(false); } // BEMIMP + +private: + wxBitmap m_bitmap; +}; + +// ---------------------------------------------------------------------------- +// wxMetaFileDataObject: see metafile.h is a specialization of wxDataObject for bitmap data +// ---------------------------------------------------------------------------- + +// TODO: wxFileDataObject. + #endif //_WX_OLEDATAOBJ_H +