]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataobj.h
added wxStringBuffer helper
[wxWidgets.git] / include / wx / dataobj.h
index f12dbe67d6be8daca5147c3ab5fd8f5c56045f22..7c7aee91f9317e0090929335078c315a6e112016 100644 (file)
@@ -87,7 +87,7 @@ public:
 
 // the value for default argument to some functions (corresponds to
 // wxDF_INVALID)
 
 // the value for default argument to some functions (corresponds to
 // wxDF_INVALID)
-extern const wxDataFormat& wxFormatInvalid;
+extern WXDLLEXPORT const wxDataFormat& wxFormatInvalid;
 
 // ----------------------------------------------------------------------------
 // wxDataObject represents a piece of data which knows which formats it
 
 // ----------------------------------------------------------------------------
 // wxDataObject represents a piece of data which knows which formats it
@@ -146,6 +146,9 @@ public:
     {
         return FALSE;
     }
     {
         return FALSE;
     }
+
+    // returns TRUE if this format is supported
+    bool IsSupported(const wxDataFormat& format, Direction dir = Get) const;
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -158,8 +161,6 @@ public:
     #include "wx/motif/dataobj.h"
 #elif defined(__WXGTK__)
     #include "wx/gtk/dataobj.h"
     #include "wx/motif/dataobj.h"
 #elif defined(__WXGTK__)
     #include "wx/gtk/dataobj.h"
-#elif defined(__WXQT__)
-    #include "wx/qt/dnd.h"
 #elif defined(__WXMAC__)
     #include "wx/mac/dataobj.h"
 #elif defined(__WXPM__)
 #elif defined(__WXMAC__)
     #include "wx/mac/dataobj.h"
 #elif defined(__WXPM__)
@@ -247,7 +248,7 @@ private:
 // wxDataObject directly.
 // ----------------------------------------------------------------------------
 
 // wxDataObject directly.
 // ----------------------------------------------------------------------------
 
-WX_DECLARE_LIST(wxDataObjectSimple, wxSimpleDataObjectList);
+WX_DECLARE_EXPORTED_LIST(wxDataObjectSimple, wxSimpleDataObjectList);
 
 class WXDLLEXPORT wxDataObjectComposite : public wxDataObject
 {
 
 class WXDLLEXPORT wxDataObjectComposite : public wxDataObject
 {
@@ -272,6 +273,13 @@ public:
 protected:
     // returns the pointer to the object which supports this format or NULL
     wxDataObjectSimple *GetObject(const wxDataFormat& format) const;
 protected:
     // returns the pointer to the object which supports this format or NULL
     wxDataObjectSimple *GetObject(const wxDataFormat& format) const;
+#if defined(__WXMSW__)
+    virtual const void* GetSizeFromBuffer( const void* buffer, size_t* size,
+                                           const wxDataFormat& format );
+    virtual void* SetSizeInBuffer( void* buffer, size_t size,
+                                   const wxDataFormat& format );
+    virtual size_t GetBufferOffset( const wxDataFormat& format );
+#endif
 
 private:
     // the list of all (simple) data objects whose formats we support
 
 private:
     // the list of all (simple) data objects whose formats we support
@@ -300,7 +308,8 @@ public:
     // ctor: you can specify the text here or in SetText(), or override
     // GetText()
     wxTextDataObject(const wxString& text = wxEmptyString)
     // ctor: you can specify the text here or in SetText(), or override
     // GetText()
     wxTextDataObject(const wxString& text = wxEmptyString)
-        : wxDataObjectSimple(wxDF_TEXT), m_text(text)
+        : wxDataObjectSimple(wxUSE_UNICODE?wxDF_UNICODETEXT:wxDF_TEXT),
+          m_text(text)
         {
         }
 
         {
         }
 
@@ -442,12 +451,24 @@ private:
 
 #if defined(__WXMSW__)
     #include "wx/msw/ole/dataobj2.h"
 
 #if defined(__WXMSW__)
     #include "wx/msw/ole/dataobj2.h"
-#elif defined(__WXMOTIF__)
-    // #include "wx/motif/dataobj2.h" -- not yet
-#elif defined(__WXGTK__)
-    #include "wx/gtk/dataobj2.h"
-#elif defined(__WXPM__)
-    #include "wx/os2/dataobj2.h"
-#endif
+
+    // wxURLDataObject defined in msw/ole/dataobj2.h
+#else // !__WXMSW__
+    #if defined(__WXGTK__)
+        #include "wx/gtk/dataobj2.h"
+    #elif defined(__WXMAC__)
+        #include "wx/mac/dataobj2.h"
+    #elif defined(__WXPM__)
+        #include "wx/os2/dataobj2.h"
+    #endif
+
+    // wxURLDataObject is simply wxTextDataObject with a different name
+    class WXDLLEXPORT wxURLDataObject : public wxTextDataObject
+    {
+    public:
+        wxString GetURL() const { return GetText(); }
+        void SetURL(const wxString& url) { SetText(url); }
+    };
+#endif // __WXMSW__/!__WXMSW__
 
 #endif // _WX_DATAOBJ_H_BASE_
 
 #endif // _WX_DATAOBJ_H_BASE_