1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/ole/dataobj2.h
3 // Purpose: second part of platform specific wxDataObject header -
4 // declarations of predefined wxDataObjectSimple-derived classes
5 // Author: Vadim Zeitlin
9 // Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
10 // Licence: wxWindows licence
11 ///////////////////////////////////////////////////////////////////////////////
13 #ifndef _WX_MSW_OLE_DATAOBJ2_H
14 #define _WX_MSW_OLE_DATAOBJ2_H
16 // ----------------------------------------------------------------------------
17 // wxBitmapDataObject is a specialization of wxDataObject for bitmap data
19 // NB: in fact, under MSW we support CF_DIB (and not CF_BITMAP) clipboard
20 // format and we also provide wxBitmapDataObject2 for CF_BITMAP (which is
21 // rarely used). This is ugly, but I haven't found a solution for it yet.
22 // ----------------------------------------------------------------------------
24 class WXDLLEXPORT wxBitmapDataObject
: public wxBitmapDataObjectBase
28 wxBitmapDataObject(const wxBitmap
& bitmap
= wxNullBitmap
)
29 : wxBitmapDataObjectBase(bitmap
)
36 // implement base class pure virtuals
37 virtual size_t GetDataSize() const;
38 virtual bool GetDataHere(void *buf
) const;
39 virtual bool SetData(size_t len
, const void *buf
);
41 virtual size_t GetDataSize(const wxDataFormat
& WXUNUSED(format
)) const
42 { return GetDataSize(); }
43 virtual bool GetDataHere(const wxDataFormat
& WXUNUSED(format
),
45 { return GetDataHere(buf
); }
46 virtual bool SetData(const wxDataFormat
& WXUNUSED(format
),
47 size_t len
, const void *buf
)
48 { return SetData(len
, buf
); }
52 void /* BITMAPINFO */ *m_data
;
54 DECLARE_NO_COPY_CLASS(wxBitmapDataObject
)
57 // ----------------------------------------------------------------------------
58 // wxBitmapDataObject2 - a data object for CF_BITMAP
60 // FIXME did I already mention it was ugly?
61 // ----------------------------------------------------------------------------
63 class WXDLLEXPORT wxBitmapDataObject2
: public wxBitmapDataObjectBase
67 wxBitmapDataObject2(const wxBitmap
& bitmap
= wxNullBitmap
)
68 : wxBitmapDataObjectBase(bitmap
)
72 // implement base class pure virtuals
73 virtual size_t GetDataSize() const;
74 virtual bool GetDataHere(void *buf
) const;
75 virtual bool SetData(size_t len
, const void *buf
);
77 virtual size_t GetDataSize(const wxDataFormat
& WXUNUSED(format
)) const
78 { return GetDataSize(); }
79 virtual bool GetDataHere(const wxDataFormat
& WXUNUSED(format
),
81 { return GetDataHere(buf
); }
82 virtual bool SetData(const wxDataFormat
& WXUNUSED(format
),
83 size_t len
, const void *buf
)
84 { return SetData(len
, buf
); }
87 DECLARE_NO_COPY_CLASS(wxBitmapDataObject2
)
90 // ----------------------------------------------------------------------------
91 // wxFileDataObject - data object for CF_HDROP
92 // ----------------------------------------------------------------------------
94 class WXDLLEXPORT wxFileDataObject
: public wxFileDataObjectBase
97 wxFileDataObject() { }
99 // implement base class pure virtuals
100 virtual bool SetData(size_t len
, const void *buf
);
101 virtual size_t GetDataSize() const;
102 virtual bool GetDataHere(void *pData
) const;
103 virtual void AddFile(const wxString
& file
);
105 virtual size_t GetDataSize(const wxDataFormat
& WXUNUSED(format
)) const
106 { return GetDataSize(); }
107 virtual bool GetDataHere(const wxDataFormat
& WXUNUSED(format
),
109 { return GetDataHere(buf
); }
110 virtual bool SetData(const wxDataFormat
& WXUNUSED(format
),
111 size_t len
, const void *buf
)
112 { return SetData(len
, buf
); }
115 DECLARE_NO_COPY_CLASS(wxFileDataObject
)
118 // ----------------------------------------------------------------------------
119 // wxURLDataObject: data object for URLs
120 // ----------------------------------------------------------------------------
122 class WXDLLEXPORT wxURLDataObject
: public wxDataObjectComposite
125 // initialize with URL in ctor or use SetURL later
126 wxURLDataObject(const wxString
& url
= wxEmptyString
);
128 // return the URL as string
129 wxString
GetURL() const;
131 // Set a string as the URL in the data object
132 void SetURL(const wxString
& url
);
134 // override to set m_textFormat
135 virtual bool SetData(const wxDataFormat
& format
,
140 // last data object we got data in
141 wxDataObjectSimple
*m_dataObjectLast
;
143 DECLARE_NO_COPY_CLASS(wxURLDataObject
)
146 #endif // _WX_MSW_OLE_DATAOBJ2_H