1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: common data object classes
4 // Author: Robert Roebling, Vadim Zeitlin
8 // Copyright: (c) wxWindows Team
9 // Licence: wxWindows license
10 ///////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_DATAOBJ_H_BASE_
13 #define _WX_DATAOBJ_H_BASE_
15 #if defined(__WXMSW__)
16 #include "wx/msw/ole/dataobj.h"
17 #elif defined(__WXMOTIF__)
18 #include "wx/motif/dataobj.h"
19 #elif defined(__WXGTK__)
20 #include "wx/gtk/dataobj.h"
21 #elif defined(__WXQT__)
22 #include "wx/qt/dnd.h"
23 #elif defined(__WXMAC__)
24 #include "wx/mac/dnd.h"
25 #elif defined(__WXSTUBS__)
26 #include "wx/stubs/dnd.h"
29 // ---------------------------------------------------------------------------
30 // wxPrivateDataObject is a specialization of wxDataObject for app specific
31 // data (of some given kind, derive directly from wxDataObject if you wish to
32 // efficiently support multiple formats)
33 // ---------------------------------------------------------------------------
35 class WXDLLEXPORT wxPrivateDataObject
: public wxDataObject
37 #if defined(__WXGTK__) || defined(__WXMOTIF__)
38 DECLARE_DYNAMIC_CLASS( wxPrivateDataObject
)
42 wxPrivateDataObject();
43 virtual ~wxPrivateDataObject() { Free(); }
45 // get the format object - it is used to decide whether we support the
46 // given output format or not
47 wxDataFormat
& GetFormat() { return m_format
; }
49 // set data. will make copy of the data
50 void SetData( const void *data
, size_t size
);
52 // returns pointer to data
53 void *GetData() const { return m_data
; }
55 // get the size of the data
56 virtual size_t GetSize() const;
58 // copy data to the given buffer
59 virtual void WriteData( void *dest
) const;
61 // these functions are provided for wxGTK compatibility, their usage is
62 // deprecated - use GetFormat().SetId() instead
63 void SetId( const wxString
& id
) { m_format
.SetId(id
); }
64 wxString
GetId() const { return m_format
.GetId(); }
66 // implement the base class pure virtuals
67 virtual wxDataFormat
GetPreferredFormat() const
69 virtual bool IsSupportedFormat(wxDataFormat format
) const
70 { return m_format
== format
; }
71 virtual size_t GetDataSize() const
73 virtual void GetDataHere(void *dest
) const
76 // the function which really copies the data - called by WriteData() above
77 // and uses GetSize() to get the size of the data
78 void WriteData( const void *data
, void *dest
) const;
89 wxDataFormat m_format
;
94 // _WX_DATAOBJ_H_BASE_