substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DA...
[wxWidgets.git] / include / wx / msw / clipbrd.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/clipbrd.h
3 // Purpose: wxClipboad class and clipboard functions for MSW
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 01/02/97
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_CLIPBRD_H_
13 #define _WX_CLIPBRD_H_
14
15 #if wxUSE_CLIPBOARD
16
17 #include "wx/list.h"
18 #include "wx/module.h"
19 #include "wx/dataobj.h" // for wxDataFormat
20
21 // These functions superceded by wxClipboard, but retained in order to
22 // implement wxClipboard, and for compatibility.
23
24 // open/close the clipboard
25 WXDLLIMPEXP_CORE bool wxOpenClipboard();
26 WXDLLIMPEXP_CORE bool wxIsClipboardOpened();
27 #define wxClipboardOpen wxIsClipboardOpened
28 WXDLLIMPEXP_CORE bool wxCloseClipboard();
29
30 // get/set data
31 WXDLLIMPEXP_CORE bool wxEmptyClipboard();
32 WXDLLIMPEXP_CORE bool wxSetClipboardData(wxDataFormat dataFormat,
33 const void *data,
34 int width = 0, int height = 0);
35 WXDLLIMPEXP_CORE void* wxGetClipboardData(wxDataFormat dataFormat,
36 long *len = NULL);
37
38 // clipboard formats
39 WXDLLIMPEXP_CORE bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat);
40 WXDLLIMPEXP_CORE wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat);
41 WXDLLIMPEXP_CORE int wxRegisterClipboardFormat(wxChar *formatName);
42 WXDLLIMPEXP_CORE bool wxGetClipboardFormatName(wxDataFormat dataFormat,
43 wxChar *formatName,
44 int maxCount);
45
46 //-----------------------------------------------------------------------------
47 // wxClipboard
48 //-----------------------------------------------------------------------------
49
50 class WXDLLIMPEXP_FWD_CORE wxDataObject;
51 class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase
52 {
53 DECLARE_DYNAMIC_CLASS(wxClipboard)
54
55 public:
56 wxClipboard();
57 virtual ~wxClipboard();
58
59 // open the clipboard before SetData() and GetData()
60 virtual bool Open();
61
62 // close the clipboard after SetData() and GetData()
63 virtual void Close();
64
65 // query whether the clipboard is opened
66 virtual bool IsOpened() const;
67
68 // set the clipboard data. all other formats will be deleted.
69 virtual bool SetData( wxDataObject *data );
70
71 // add to the clipboard data.
72 virtual bool AddData( wxDataObject *data );
73
74 // ask if data in correct format is available
75 virtual bool IsSupported( const wxDataFormat& format );
76
77 // fill data with data on the clipboard (if available)
78 virtual bool GetData( wxDataObject& data );
79
80 // clears wxTheClipboard and the system's clipboard if possible
81 virtual void Clear();
82
83 // flushes the clipboard: this means that the data which is currently on
84 // clipboard will stay available even after the application exits (possibly
85 // eating memory), otherwise the clipboard will be emptied on exit
86 virtual bool Flush();
87
88 private:
89 IDataObject *m_lastDataObject;
90 bool m_isOpened;
91 };
92
93 #endif // wxUSE_CLIPBOARD
94
95 #endif // _WX_CLIPBRD_H_