]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/ole/dataobj.h
*** empty log message ***
[wxWidgets.git] / include / wx / msw / ole / dataobj.h
index 3c12d8ff804e2d6cab1e21c8da8c1beb3a0c3f75..6490e67f82babe1fbcab7b4842988e9fb33a4fc7 100644 (file)
 #ifndef   _WX_OLEDATAOBJ_H
 #define   _WX_OLEDATAOBJ_H
 
+// ----------------------------------------------------------------------------
+// wxDataFormat identifies the single format of data
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDataFormat
+{
+public:
+    // the clipboard formats under Win32 are UINTs
+    typedef unsigned int NativeFormat;
+
+    wxDataFormat(NativeFormat format = wxDF_INVALID) { m_format = format; }
+    wxDataFormat& operator=(NativeFormat format)
+        { m_format = format; return *this; }
+
+    // defautl copy ctor/assignment operators ok
+
+    // comparison (must have both versions)
+    bool operator==(wxDataFormatId format) const
+        { return m_format == (NativeFormat)format; }
+    bool operator!=(wxDataFormatId format) const
+        { return m_format != (NativeFormat)format; }
+    bool operator==(const wxDataFormat& format) const
+        { return m_format == format.m_format; }
+    bool operator!=(const wxDataFormat& format) const
+        { return m_format != format.m_format; }
+
+    // explicit and implicit conversions to NativeFormat which is one of
+    // standard data types (implicit conversion is useful for preserving the
+    // compatibility with old code)
+    NativeFormat GetFormatId() const { return m_format; }
+    operator NativeFormat() const { return m_format; }
+
+    // this only works with standard ids
+    void SetId(wxDataFormatId format) { m_format = format; }
+
+    // string ids are used for custom types - this SetId() must be used for
+    // application-specific formats
+    wxString GetId() const;
+    void SetId(const wxChar *format);
+
+private:
+    // returns TRUE if the format is one of those defined in wxDataFormatId
+    bool IsStandard() const { return m_format > 0 && m_format < wxDF_MAX; }
+
+    NativeFormat m_format;
+};
+
 // ----------------------------------------------------------------------------
 // forward declarations
 // ----------------------------------------------------------------------------
@@ -33,7 +80,7 @@ public:
 
   // ctor & dtor
   wxDataObject();
-  ~wxDataObject();
+  virtual ~wxDataObject();
 
   // pure virtuals to override
     // get the best suited format for our data
@@ -114,9 +161,9 @@ public:
   virtual bool IsSupportedFormat(wxDataFormat format) const
     { return format == wxDF_BITMAP; }
   virtual size_t GetDataSize() const
-    { wxASSERT(false); return 0; } // BEMIMP
+    { wxASSERT(FALSE); return 0; } // BEMIMP
   virtual void GetDataHere(void *pBuf) const
-    { wxASSERT(false); } // BEMIMP
+    { wxASSERT(FALSE); } // BEMIMP
 
 private:
   wxBitmap  m_bitmap;