class WXDLLEXPORT wxDataFormat
{
public:
- // the clipboard formats under Win32 are UINTs
- typedef unsigned int NativeFormat;
+ // the clipboard formats under Win32 are WORDs
+ typedef unsigned short NativeFormat;
wxDataFormat(NativeFormat format = wxDF_INVALID) { m_format = format; }
wxDataFormat(const wxChar *format) { SetId(format); }
NativeFormat GetFormatId() const { return m_format; }
operator NativeFormat() const { return m_format; }
- // this only works with standard ids
- void SetType(wxDataFormatId format) { m_format = format; }
- wxDataFormatId GetType() const { return m_format; }
+ // this works with standard as well as custom ids
+ void SetType(NativeFormat format) { m_format = format; }
+ NativeFormat GetType() const { return m_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; }
+private:
NativeFormat m_format;
};
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/msw/ole/dataobj2.h
+// Purpose: second part of platform specific wxDataObject header -
+// declarations of predefined wxDataObjectSimple-derived classes
+// Author: Vadim Zeitlin
+// Modified by:
+// Created: 21.10.99
+// RCS-ID: $Id$
+// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Licence: wxWindows license
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_OLE_DATAOBJ2_H
+#define _WX_MSW_OLE_DATAOBJ2_H
+
+// ----------------------------------------------------------------------------
+// wxBitmapDataObject is a specialization of wxDataObject for bitmap data
+//
+// NB: in fact, under MSW we support CF_DIB (and not CF_BITMAP) clipboard
+// format and we also provide wxBitmapDataObject2 for CF_BITMAP (which is
+// rarely used). This is ugly, but I haven't found a solution for it yet.
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBitmapDataObject : public wxBitmapDataObjectBase
+{
+public:
+ // ctors
+ wxBitmapDataObject(const wxBitmap& bitmap = wxNullBitmap)
+ : wxBitmapDataObjectBase(bitmap)
+ {
+ SetFormat(wxDF_DIB);
+
+ m_data = NULL;
+ }
+
+ // implement base class pure virtuals
+ virtual size_t GetDataSize() const;
+ virtual bool GetDataHere(void *buf) const;
+ virtual bool SetData(size_t len, const void *buf);
+
+private:
+ // the DIB data
+ void /* BITMAPINFO */ *m_data;
+};
+
+// ----------------------------------------------------------------------------
+// wxBitmapDataObject2 - a data object for CF_BITMAP
+//
+// FIXME did I already mention it was ugly?
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBitmapDataObject2 : public wxBitmapDataObjectBase
+{
+public:
+ // ctors
+ wxBitmapDataObject2(const wxBitmap& bitmap = wxNullBitmap)
+ : wxBitmapDataObjectBase(bitmap)
+ {
+ }
+
+ // implement base class pure virtuals
+ virtual size_t GetDataSize() const;
+ virtual bool GetDataHere(void *buf) const;
+ virtual bool SetData(size_t len, const void *buf);
+};
+
+// ----------------------------------------------------------------------------
+// wxFileDataObject - data object for CF_HDROP
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxFileDataObject : public wxFileDataObjectBase
+{
+public:
+ // implement base class pure virtuals
+ virtual bool SetData(size_t len, const void *buf);
+};
+
+#endif // _WX_MSW_OLE_DATAOBJ2_H