X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbcdf8bc7ca806d8278c7cb6d09d5590378b67d8..e35d0039d37b1b785aab12d8ef55507d7879c232:/include/wx/msw/ole/dataobj.h diff --git a/include/wx/msw/ole/dataobj.h b/include/wx/msw/ole/dataobj.h index 245c4db718..06fcfd6a67 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!) @@ -65,7 +65,7 @@ public: // StdFormat enumerations or a user-defined format) virtual bool IsSupportedFormat(wxDataFormat format) const = 0; // get the (total) size of data - virtual uint GetDataSize() const = 0; + virtual size_t GetDataSize() const = 0; // copy raw data to provided pointer virtual void GetDataHere(void *pBuf) const = 0; @@ -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,7 +83,7 @@ private: // ---------------------------------------------------------------------------- // wxTextDataObject is a specialization of wxDataObject for text data // ---------------------------------------------------------------------------- -class wxTextDataObject : public wxDataObject +class WXDLLEXPORT wxTextDataObject : public wxDataObject { public: // ctors @@ -93,11 +96,16 @@ public: { return (wxDataFormat) wxDataObject::Text; } virtual bool IsSupportedFormat(wxDataFormat format) const { return format == wxDataObject::Text || format == wxDataObject::Locale; } - virtual uint GetDataSize() const + 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()); } + ////// 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,44 @@ 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::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: + wxBitmap m_bitmap; +}; + +// ---------------------------------------------------------------------------- +// wxMetaFileDataObject: see metafile.h is a specialization of wxDataObject for bitmap data +// ---------------------------------------------------------------------------- + +// TODO: wxFileDataObject. + #endif //_WX_OLEDATAOBJ_H +