]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/ole/dataobj.h
Added more makefiles; fixed some samples for Cygwin
[wxWidgets.git] / include / wx / msw / ole / dataobj.h
index 23b6141f24053d587804006a9cde42596a3fac45..9ffe673ffe8dc2c0ea0da4eb3963e90745d92c7a 100644 (file)
@@ -6,11 +6,11 @@
 // Created:     10.05.98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// 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!)
@@ -65,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;
 
@@ -73,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
 };
@@ -80,11 +83,11 @@ 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; }
 
@@ -93,11 +96,16 @@ public:
     { 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;
 };
@@ -106,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
+