]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/ole/dataobj2.h
assert -> wxASSERT
[wxWidgets.git] / include / wx / msw / ole / dataobj2.h
CommitLineData
3922ecc9
VZ
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
6// Modified by:
7// Created: 21.10.99
8// RCS-ID: $Id$
9// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
65571936 10// Licence: wxWindows licence
3922ecc9
VZ
11///////////////////////////////////////////////////////////////////////////////
12
13#ifndef _WX_MSW_OLE_DATAOBJ2_H
14#define _WX_MSW_OLE_DATAOBJ2_H
15
16// ----------------------------------------------------------------------------
17// wxBitmapDataObject is a specialization of wxDataObject for bitmap data
18//
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// ----------------------------------------------------------------------------
23
24class WXDLLEXPORT wxBitmapDataObject : public wxBitmapDataObjectBase
25{
26public:
27 // ctors
28 wxBitmapDataObject(const wxBitmap& bitmap = wxNullBitmap)
29 : wxBitmapDataObjectBase(bitmap)
30 {
31 SetFormat(wxDF_DIB);
32
33 m_data = NULL;
34 }
35
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);
40
0e4acbd4
JS
41 virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const
42 { return GetDataSize(); }
43 virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format),
44 void *buf) const
45 { return GetDataHere(buf); }
46 virtual bool SetData(const wxDataFormat& WXUNUSED(format),
47 size_t len, const void *buf)
48 { return SetData(len, buf); }
49
3922ecc9
VZ
50private:
51 // the DIB data
52 void /* BITMAPINFO */ *m_data;
22f3361e
VZ
53
54 DECLARE_NO_COPY_CLASS(wxBitmapDataObject)
3922ecc9
VZ
55};
56
57// ----------------------------------------------------------------------------
58// wxBitmapDataObject2 - a data object for CF_BITMAP
59//
60// FIXME did I already mention it was ugly?
61// ----------------------------------------------------------------------------
62
63class WXDLLEXPORT wxBitmapDataObject2 : public wxBitmapDataObjectBase
64{
65public:
66 // ctors
67 wxBitmapDataObject2(const wxBitmap& bitmap = wxNullBitmap)
68 : wxBitmapDataObjectBase(bitmap)
69 {
70 }
71
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);
fc7a2a60 76
0e4acbd4
JS
77 virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const
78 { return GetDataSize(); }
79 virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format),
80 void *buf) const
81 { return GetDataHere(buf); }
82 virtual bool SetData(const wxDataFormat& WXUNUSED(format),
83 size_t len, const void *buf)
84 { return SetData(len, buf); }
85
fc7a2a60
VZ
86private:
87 DECLARE_NO_COPY_CLASS(wxBitmapDataObject2)
3922ecc9
VZ
88};
89
90// ----------------------------------------------------------------------------
91// wxFileDataObject - data object for CF_HDROP
92// ----------------------------------------------------------------------------
93
94class WXDLLEXPORT wxFileDataObject : public wxFileDataObjectBase
95{
96public:
fc7a2a60
VZ
97 wxFileDataObject() { }
98
3922ecc9
VZ
99 // implement base class pure virtuals
100 virtual bool SetData(size_t len, const void *buf);
8b85d24e
VZ
101 virtual size_t GetDataSize() const;
102 virtual bool GetDataHere(void *pData) const;
103 virtual void AddFile(const wxString& file);
fc7a2a60 104
0e4acbd4
JS
105 virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const
106 { return GetDataSize(); }
107 virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format),
108 void *buf) const
109 { return GetDataHere(buf); }
110 virtual bool SetData(const wxDataFormat& WXUNUSED(format),
111 size_t len, const void *buf)
112 { return SetData(len, buf); }
113
fc7a2a60
VZ
114private:
115 DECLARE_NO_COPY_CLASS(wxFileDataObject)
3922ecc9
VZ
116};
117
444ad3a7
VZ
118// ----------------------------------------------------------------------------
119// wxURLDataObject: data object for URLs
120// ----------------------------------------------------------------------------
121
122class WXDLLEXPORT wxURLDataObject : public wxDataObjectComposite
123{
124public:
125 wxURLDataObject();
126
127 // return the URL as string
128 wxString GetURL() const;
129
e6d318c2
RD
130 // Set a string as the URL in the data object
131 void SetURL(const wxString& url);
132
444ad3a7
VZ
133 // override to set m_textFormat
134 virtual bool SetData(const wxDataFormat& format,
135 size_t len,
136 const void *buf);
137
138private:
139 // last data object we got data in
140 wxDataObjectSimple *m_dataObjectLast;
22f3361e
VZ
141
142 DECLARE_NO_COPY_CLASS(wxURLDataObject)
444ad3a7
VZ
143};
144
3922ecc9 145#endif // _WX_MSW_OLE_DATAOBJ2_H