- 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
-};
-
-// ----------------------------------------------------------------------------
-// wxTextDataObject is a specialization of wxDataObject for text data
-// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxTextDataObject : public wxDataObject
-{
+ IDataObject *GetInterface() const { return m_pIDataObject; }
+
+ // tell the object that it should be now owned by IDataObject - i.e. when
+ // it is deleted, it should delete us as well
+ void SetAutoDelete();
+
+ // return true if we support this format in "Get" direction
+ bool IsSupportedFormat(const wxDataFormat& format) const
+ { return wxDataObjectBase::IsSupported(format, Get); }
+
+ // if this method returns false, this wxDataObject will be copied to
+ // the clipboard with its size prepended to it, which is compatible with
+ // older wx versions
+ //
+ // if returns true, then this wxDataObject will be copied to the clipboard
+ // without any additional information and ::HeapSize() function will be used
+ // to get the size of that data
+ virtual bool NeedsVerbatimData(const wxDataFormat& WXUNUSED(format)) const
+ {
+ // return false from here only for compatibility with earlier wx versions
+ return true;
+ }
+
+ // function to return symbolic name of clipboard format (for debug messages)
+#ifdef __WXDEBUG__
+ static const wxChar *GetFormatName(wxDataFormat format);
+
+ #define wxGetFormatName(format) wxDataObject::GetFormatName(format)
+#else // !Debug
+ #define wxGetFormatName(format) wxT("")
+#endif // Debug/!Debug
+ // they need to be accessed from wxIDataObject, so made them public,
+ // or wxIDataObject friend