]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dataobj.h
Fixed stream test.
[wxWidgets.git] / include / wx / dataobj.h
index e367c29194e7e1206a2e38bb9dfb410f497238bd..6c8fac34d0fb55d9d6561fa070f16b358ba31d77 100644 (file)
@@ -5,25 +5,28 @@
 // Modified by:
 // Created:     26.05.99
 // RCS-ID:      $Id$
-// Copyright:   (c) wxWindows Team
-// Licence:     wxWindows license
+// Copyright:   (c) wxWidgets Team
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_DATAOBJ_H_BASE_
 #define _WX_DATAOBJ_H_BASE_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "dataobjbase.h"
 #endif
 
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
-
 #include "wx/defs.h"
+
+#if wxUSE_DATAOBJ
+
 #include "wx/string.h"
 #include "wx/bitmap.h"
 #include "wx/list.h"
+#include "wx/arrstr.h"
 
 // ============================================================================
 /*
@@ -83,6 +86,8 @@ public:
     #include "wx/x11/dataform.h"
 #elif defined(__WXMAC__)
     #include "wx/mac/dataform.h"
+#elif defined(__WXCOCOA__)
+    #include "wx/cocoa/dataform.h"
 #elif defined(__WXPM__)
     #include "wx/os2/dataform.h"
 #endif
@@ -167,10 +172,10 @@ public:
     #include "wx/gtk/dataobj.h"
 #elif defined(__WXMAC__)
     #include "wx/mac/dataobj.h"
+#elif defined(__WXCOCOA__)
+    #include "wx/cocoa/dataobj.h"
 #elif defined(__WXPM__)
     #include "wx/os2/dataobj.h"
-#elif defined(__WXSTUBS__)
-    #include "wx/stubs/dnd.h"
 #endif
 
 // ----------------------------------------------------------------------------
@@ -240,6 +245,8 @@ public:
 private:
     // the one and only format we support
     wxDataFormat m_format;
+
+    DECLARE_NO_COPY_CLASS(wxDataObjectSimple)
 };
 
 // ----------------------------------------------------------------------------
@@ -259,6 +266,7 @@ class WXDLLEXPORT wxDataObjectComposite : public wxDataObject
 public:
     // ctor
     wxDataObjectComposite();
+    virtual ~wxDataObjectComposite();
 
     // add data object (it will be deleted by wxDataObjectComposite, hence it
     // must be allocated on the heap) whose format will become the preferred
@@ -292,6 +300,8 @@ private:
     // the index of the preferred one (0 initially, so by default the first
     // one is the preferred)
     size_t m_preferred;
+
+    DECLARE_NO_COPY_CLASS(wxDataObjectComposite)
 };
 
 // ============================================================================
@@ -325,20 +335,48 @@ public:
 
     // implement base class pure virtuals
     // ----------------------------------
+
+#if wxUSE_UNICODE && defined(__WXGTK20__)
+    virtual size_t GetFormatCount(Direction WXUNUSED(dir) = Get) const { return 2; }
+    virtual void GetAllFormats(wxDataFormat *formats,
+                               wxDataObjectBase::Direction WXUNUSED(dir) = Get) const;
+                               
+    virtual size_t GetDataSize() const { return GetDataSize(GetPreferredFormat()); }
+    virtual bool GetDataHere(void *buf) const { return GetDataHere(GetPreferredFormat(), buf); }
+    virtual bool SetData(size_t len, const void *buf) { return SetData(GetPreferredFormat(), len, buf); }
+
+    size_t GetDataSize(const wxDataFormat& format) const;
+    bool GetDataHere(const wxDataFormat& format, void *pBuf) const;
+    bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf);
+#elif wxUSE_UNICODE && defined(__WXMAC__)
+    virtual size_t GetFormatCount(Direction WXUNUSED(dir) = Get) const { return 2; }
+    virtual void GetAllFormats(wxDataFormat *formats,
+                               wxDataObjectBase::Direction WXUNUSED(dir) = Get) const;
+
+    virtual size_t GetDataSize() const { return GetDataSize(GetPreferredFormat()); }
+    virtual bool GetDataHere(void *buf) const { return GetDataHere(GetPreferredFormat(), buf); }
+    virtual bool SetData(size_t len, const void *buf) { return SetData(GetPreferredFormat(), len, buf); }
+
+    size_t GetDataSize(const wxDataFormat& format) const;
+    bool GetDataHere(const wxDataFormat& format, void *pBuf) const;
+    bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf);
+#else
     virtual size_t GetDataSize() const;
     virtual bool GetDataHere(void *buf) const;
     virtual bool SetData(size_t len, const void *buf);
 
-private:
-    wxString m_text;
-
-    // virtual function hiding supression
     size_t GetDataSize(const wxDataFormat& format) const
         { return(wxDataObjectSimple::GetDataSize(format)); }
     bool GetDataHere(const wxDataFormat& format, void *pBuf) const
         { return(wxDataObjectSimple::GetDataHere(format, pBuf)); }
     bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf)
         { return(wxDataObjectSimple::SetData(format, nLen, pBuf)); }
+#endif
+
+private:
+    wxString m_text;
+    
+    DECLARE_NO_COPY_CLASS(wxTextDataObject)
 };
 
 // ----------------------------------------------------------------------------
@@ -362,6 +400,8 @@ public:
 
 protected:
     wxBitmap m_bitmap;
+
+    DECLARE_NO_COPY_CLASS(wxBitmapDataObjectBase)
 };
 
 // ----------------------------------------------------------------------------
@@ -393,6 +433,8 @@ private:
         { return(wxDataObjectSimple::GetDataSize(format)); }
     bool GetDataHere(const wxDataFormat& format, void* pBuf) const
         { return(wxDataObjectSimple::GetDataHere(format, pBuf)); }
+
+    DECLARE_NO_COPY_CLASS(wxFileDataObjectBase)
 };
 
 // ----------------------------------------------------------------------------
@@ -447,6 +489,8 @@ private:
         { return(wxDataObjectSimple::GetDataHere(format, pBuf)); }
     bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf)
         { return(wxDataObjectSimple::SetData(format, nLen, pBuf)); }
+
+    DECLARE_NO_COPY_CLASS(wxCustomDataObject)
 };
 
 // ----------------------------------------------------------------------------
@@ -462,8 +506,12 @@ private:
         #include "wx/gtk/dataobj2.h"
     #elif defined(__WXX11__)
         #include "wx/x11/dataobj2.h"
+    #elif defined(__WXMOTIF__)
+        #include "wx/motif/dataobj2.h"
     #elif defined(__WXMAC__)
         #include "wx/mac/dataobj2.h"
+    #elif defined(__WXCOCOA__)
+        #include "wx/cocoa/dataobj2.h"
     #elif defined(__WXPM__)
         #include "wx/os2/dataobj2.h"
     #endif
@@ -477,4 +525,6 @@ private:
     };
 #endif // __WXMSW__/!__WXMSW__
 
+#endif // wxUSE_DATAOBJ
+
 #endif // _WX_DATAOBJ_H_BASE_