]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataobj.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / dataobj.h
index 1dc04bef5512771e2098c7bfd8a149761e1cb6d7..d099f4b6b13d1256b4a7772b147cd1c2448b1f24 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Vadim Zeitlin, Robert Roebling
 // Modified by:
 // Created:     26.05.99
-// RCS-ID:      $Id$
 // Copyright:   (c) wxWidgets Team
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -246,7 +245,7 @@ private:
     // the one and only format we support
     wxDataFormat m_format;
 
-    DECLARE_NO_COPY_CLASS(wxDataObjectSimple)
+    wxDECLARE_NO_COPY_CLASS(wxDataObjectSimple);
 };
 
 // ----------------------------------------------------------------------------
@@ -274,11 +273,17 @@ public:
     void Add(wxDataObjectSimple *dataObject, bool preferred = false);
 
     // Report the format passed to the SetData method.  This should be the
-    // format of the data object within the composite that recieved data from
+    // format of the data object within the composite that received data from
     // the clipboard or the DnD operation.  You can use this method to find
-    // out what kind of data object was recieved.
+    // out what kind of data object was received.
     wxDataFormat GetReceivedFormat() const;
 
+    // Returns the pointer to the object which supports this format or NULL.
+    // The returned pointer is owned by wxDataObjectComposite and must
+    // therefore not be destroyed by the caller.
+    wxDataObjectSimple *GetObject(const wxDataFormat& format,
+                                  wxDataObjectBase::Direction dir = Get) const;
+
     // implement base class pure virtuals
     // ----------------------------------
     virtual wxDataFormat GetPreferredFormat(wxDataObjectBase::Direction dir = Get) const;
@@ -295,10 +300,6 @@ public:
     virtual size_t GetBufferOffset( const wxDataFormat& format );
 #endif
 
-protected:
-    // returns the pointer to the object which supports this format or NULL
-    wxDataObjectSimple *GetObject(const wxDataFormat& format) const;
-
 private:
     // the list of all (simple) data objects whose formats we support
     wxSimpleDataObjectList m_dataObjects;
@@ -309,7 +310,7 @@ private:
 
     wxDataFormat m_receivedFormat;
 
-    DECLARE_NO_COPY_CLASS(wxDataObjectComposite)
+    wxDECLARE_NO_COPY_CLASS(wxDataObjectComposite);
 };
 
 // ============================================================================
@@ -332,6 +333,45 @@ private:
     #endif
 #endif // wxUSE_UNICODE
 
+class WXDLLIMPEXP_CORE wxHTMLDataObject : public wxDataObjectSimple
+{
+public:
+    // ctor: you can specify the text here or in SetText(), or override
+    // GetText()
+    wxHTMLDataObject(const wxString& html = wxEmptyString)
+        : wxDataObjectSimple(wxDF_HTML),
+          m_html(html)
+        {
+        }
+
+    // virtual functions which you may override if you want to provide text on
+    // demand only - otherwise, the trivial default versions will be used
+    virtual size_t GetLength() const { return m_html.Len() + 1; }
+    virtual wxString GetHTML() const { return m_html; }
+    virtual void SetHTML(const wxString& html) { m_html = html; }
+    
+    virtual size_t GetDataSize() const;
+    virtual bool GetDataHere(void *buf) const;
+    virtual bool SetData(size_t len, const void *buf);
+    
+    // Must provide overloads to avoid hiding them (and warnings about it)
+    virtual size_t GetDataSize(const wxDataFormat&) const
+    {
+        return GetDataSize();
+    }
+    virtual bool GetDataHere(const wxDataFormat&, void *buf) const
+    {
+        return GetDataHere(buf);
+    }
+    virtual bool SetData(const wxDataFormat&, size_t len, const void *buf)
+    {
+        return SetData(len, buf);
+    }
+
+private:
+    wxString m_html;
+};
+
 class WXDLLIMPEXP_CORE wxTextDataObject : public wxDataObjectSimple
 {
 public:
@@ -393,7 +433,7 @@ public:
 private:
     wxString m_text;
 
-    DECLARE_NO_COPY_CLASS(wxTextDataObject)
+    wxDECLARE_NO_COPY_CLASS(wxTextDataObject);
 };
 
 // ----------------------------------------------------------------------------
@@ -418,7 +458,7 @@ public:
 protected:
     wxBitmap m_bitmap;
 
-    DECLARE_NO_COPY_CLASS(wxBitmapDataObjectBase)
+    wxDECLARE_NO_COPY_CLASS(wxBitmapDataObjectBase);
 };
 
 // ----------------------------------------------------------------------------
@@ -440,7 +480,7 @@ public:
 protected:
     wxArrayString m_filenames;
 
-    DECLARE_NO_COPY_CLASS(wxFileDataObjectBase)
+    wxDECLARE_NO_COPY_CLASS(wxFileDataObjectBase);
 };
 
 // ----------------------------------------------------------------------------
@@ -501,7 +541,7 @@ private:
     size_t m_size;
     void  *m_data;
 
-    DECLARE_NO_COPY_CLASS(wxCustomDataObject)
+    wxDECLARE_NO_COPY_CLASS(wxCustomDataObject);
 };
 
 // ----------------------------------------------------------------------------
@@ -515,7 +555,7 @@ private:
     #include "wx/gtk/dataobj2.h"
     // wxURLDataObject defined in msw/ole/dataobj2.h
 
-#else 
+#else
     #if defined(__WXGTK__)
         #include "wx/gtk1/dataobj2.h"
     #elif defined(__WXX11__)