X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/329b53d8ff1fdd322af046f9b93f3a9b7f0befa1..dbda9e86f0e5ec1184bc16d135bb7205bc99236e:/include/wx/msw/ole/dataobj.h diff --git a/include/wx/msw/ole/dataobj.h b/include/wx/msw/ole/dataobj.h index f083f6f169..9ffe673ffe 100644 --- a/include/wx/msw/ole/dataobj.h +++ b/include/wx/msw/ole/dataobj.h @@ -6,11 +6,11 @@ // Created: 10.05.98 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifndef _OLEDATAOBJ_H -#define _OLEDATAOBJ_H +#ifndef _WX_OLEDATAOBJ_H +#define _WX_OLEDATAOBJ_H // ---------------------------------------------------------------------------- // forward declarations @@ -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!) @@ -51,12 +51,8 @@ public: Max }; - #ifdef __DEBUG__ - // function to return symbolic name of clipboard format (debug messages) - static const char *GetFormatName(wxDataFormat format); - #else // not used in release mode - #define GetFormatName(format) "" - #endif + // function to return symbolic name of clipboard format (debug messages) + static const char *GetFormatName(wxDataFormat format); // ctor & dtor wxDataObject(); @@ -69,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; @@ -77,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 }; @@ -84,24 +83,29 @@ 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; } // implement base class pure virtuals virtual wxDataFormat GetPreferredFormat() const - { return wxDataObject::Text; } + { 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; }; @@ -110,4 +114,44 @@ private: // @@@ TODO: wx{Bitmap|Metafile|...}DataObject // ---------------------------------------------------------------------------- -#endif //_OLEDATAOBJ_H +// ---------------------------------------------------------------------------- +// 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 +