]>
Commit | Line | Data |
---|---|---|
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 | |
3922ecc9 | 8 | // Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> |
65571936 | 9 | // Licence: wxWindows licence |
3922ecc9 VZ |
10 | /////////////////////////////////////////////////////////////////////////////// |
11 | ||
12 | #ifndef _WX_MSW_OLE_DATAOBJ2_H | |
13 | #define _WX_MSW_OLE_DATAOBJ2_H | |
14 | ||
15 | // ---------------------------------------------------------------------------- | |
16 | // wxBitmapDataObject is a specialization of wxDataObject for bitmap data | |
17 | // | |
18 | // NB: in fact, under MSW we support CF_DIB (and not CF_BITMAP) clipboard | |
19 | // format and we also provide wxBitmapDataObject2 for CF_BITMAP (which is | |
20 | // rarely used). This is ugly, but I haven't found a solution for it yet. | |
21 | // ---------------------------------------------------------------------------- | |
22 | ||
53a2db12 | 23 | class WXDLLIMPEXP_CORE wxBitmapDataObject : public wxBitmapDataObjectBase |
3922ecc9 VZ |
24 | { |
25 | public: | |
26 | // ctors | |
27 | wxBitmapDataObject(const wxBitmap& bitmap = wxNullBitmap) | |
28 | : wxBitmapDataObjectBase(bitmap) | |
29 | { | |
30 | SetFormat(wxDF_DIB); | |
31 | ||
32 | m_data = NULL; | |
33 | } | |
34 | ||
35 | // implement base class pure virtuals | |
36 | virtual size_t GetDataSize() const; | |
37 | virtual bool GetDataHere(void *buf) const; | |
38 | virtual bool SetData(size_t len, const void *buf); | |
39 | ||
0e4acbd4 JS |
40 | virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const |
41 | { return GetDataSize(); } | |
42 | virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), | |
43 | void *buf) const | |
44 | { return GetDataHere(buf); } | |
45 | virtual bool SetData(const wxDataFormat& WXUNUSED(format), | |
46 | size_t len, const void *buf) | |
47 | { return SetData(len, buf); } | |
48 | ||
3922ecc9 VZ |
49 | private: |
50 | // the DIB data | |
51 | void /* BITMAPINFO */ *m_data; | |
22f3361e | 52 | |
c0c133e1 | 53 | wxDECLARE_NO_COPY_CLASS(wxBitmapDataObject); |
3922ecc9 VZ |
54 | }; |
55 | ||
56 | // ---------------------------------------------------------------------------- | |
57 | // wxBitmapDataObject2 - a data object for CF_BITMAP | |
58 | // | |
59 | // FIXME did I already mention it was ugly? | |
60 | // ---------------------------------------------------------------------------- | |
61 | ||
53a2db12 | 62 | class WXDLLIMPEXP_CORE wxBitmapDataObject2 : public wxBitmapDataObjectBase |
3922ecc9 VZ |
63 | { |
64 | public: | |
65 | // ctors | |
66 | wxBitmapDataObject2(const wxBitmap& bitmap = wxNullBitmap) | |
67 | : wxBitmapDataObjectBase(bitmap) | |
68 | { | |
69 | } | |
70 | ||
71 | // implement base class pure virtuals | |
72 | virtual size_t GetDataSize() const; | |
73 | virtual bool GetDataHere(void *buf) const; | |
74 | virtual bool SetData(size_t len, const void *buf); | |
fc7a2a60 | 75 | |
0e4acbd4 JS |
76 | virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const |
77 | { return GetDataSize(); } | |
78 | virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), | |
79 | void *buf) const | |
80 | { return GetDataHere(buf); } | |
81 | virtual bool SetData(const wxDataFormat& WXUNUSED(format), | |
82 | size_t len, const void *buf) | |
83 | { return SetData(len, buf); } | |
84 | ||
fc7a2a60 | 85 | private: |
c0c133e1 | 86 | wxDECLARE_NO_COPY_CLASS(wxBitmapDataObject2); |
3922ecc9 VZ |
87 | }; |
88 | ||
89 | // ---------------------------------------------------------------------------- | |
90 | // wxFileDataObject - data object for CF_HDROP | |
91 | // ---------------------------------------------------------------------------- | |
92 | ||
53a2db12 | 93 | class WXDLLIMPEXP_CORE wxFileDataObject : public wxFileDataObjectBase |
3922ecc9 VZ |
94 | { |
95 | public: | |
fc7a2a60 VZ |
96 | wxFileDataObject() { } |
97 | ||
3922ecc9 VZ |
98 | // implement base class pure virtuals |
99 | virtual bool SetData(size_t len, const void *buf); | |
8b85d24e VZ |
100 | virtual size_t GetDataSize() const; |
101 | virtual bool GetDataHere(void *pData) const; | |
102 | virtual void AddFile(const wxString& file); | |
fc7a2a60 | 103 | |
0e4acbd4 JS |
104 | virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const |
105 | { return GetDataSize(); } | |
106 | virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), | |
107 | void *buf) const | |
108 | { return GetDataHere(buf); } | |
109 | virtual bool SetData(const wxDataFormat& WXUNUSED(format), | |
110 | size_t len, const void *buf) | |
111 | { return SetData(len, buf); } | |
112 | ||
fc7a2a60 | 113 | private: |
c0c133e1 | 114 | wxDECLARE_NO_COPY_CLASS(wxFileDataObject); |
3922ecc9 VZ |
115 | }; |
116 | ||
444ad3a7 VZ |
117 | // ---------------------------------------------------------------------------- |
118 | // wxURLDataObject: data object for URLs | |
119 | // ---------------------------------------------------------------------------- | |
120 | ||
53a2db12 | 121 | class WXDLLIMPEXP_CORE wxURLDataObject : public wxDataObjectComposite |
444ad3a7 VZ |
122 | { |
123 | public: | |
0463eea9 VZ |
124 | // initialize with URL in ctor or use SetURL later |
125 | wxURLDataObject(const wxString& url = wxEmptyString); | |
444ad3a7 VZ |
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 | ||
138 | private: | |
139 | // last data object we got data in | |
140 | wxDataObjectSimple *m_dataObjectLast; | |
22f3361e | 141 | |
c0c133e1 | 142 | wxDECLARE_NO_COPY_CLASS(wxURLDataObject); |
444ad3a7 VZ |
143 | }; |
144 | ||
3922ecc9 | 145 | #endif // _WX_MSW_OLE_DATAOBJ2_H |