wxGTK compatible clipboard implementation (not OLE clipboard - it will come
[wxWidgets.git] / include / wx / msw / clipbrd.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: clipbrd.h
3 // Purpose: Clipboard functionality
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 #ifdef __GNUG__
16 #pragma interface "clipbrd.h"
17 #endif
18
19 #include "wx/defs.h"
20 #include "wx/setup.h"
21
22 #if wxUSE_CLIPBOARD
23
24 #include "wx/list.h"
25 #include "wx/module.h"
26
27 // These functions superceded by wxClipboard, but retained in order to
28 // implement wxClipboard, and for compatibility.
29
30 // open/close the clipboard
31 WXDLLEXPORT bool wxOpenClipboard();
32 WXDLLEXPORT bool wxIsClipboardOpened();
33 #define wxClipboardOpen wxIsClipboardOpened
34 WXDLLEXPORT bool wxCloseClipboard();
35
36 // get/set data
37 WXDLLEXPORT bool wxEmptyClipboard();
38 WXDLLEXPORT bool wxSetClipboardData(wxDataFormat dataFormat,
39 const void *data,
40 int width = 0, int height = 0);
41 WXDLLEXPORT void* wxGetClipboardData(wxDataFormat dataFormat,
42 long *len = NULL);
43
44 // clipboard formats
45 WXDLLEXPORT bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat);
46 WXDLLEXPORT wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat);
47 WXDLLEXPORT int wxRegisterClipboardFormat(char *formatName);
48 WXDLLEXPORT bool wxGetClipboardFormatName(wxDataFormat dataFormat,
49 char *formatName,
50 int maxCount);
51
52 //-----------------------------------------------------------------------------
53 // wxClipboard
54 //-----------------------------------------------------------------------------
55
56 class WXDLLEXPORT wxDataObject;
57 class WXDLLEXPORT wxClipboard : public wxObject
58 {
59 DECLARE_DYNAMIC_CLASS(wxClipboard)
60
61 public:
62 wxClipboard();
63 ~wxClipboard();
64
65 // open the clipboard before SetData() and GetData()
66 virtual bool Open();
67
68 // close the clipboard after SetData() and GetData()
69 virtual void Close();
70
71 // set the clipboard data. all other formats will be deleted.
72 virtual bool SetData( wxDataObject *data );
73
74 // add to the clipboard data.
75 virtual bool AddData( wxDataObject *data );
76
77 // ask if data in correct format is available
78 virtual bool IsSupported( wxDataFormat format );
79
80 // fill data with data on the clipboard (if available)
81 virtual bool GetData( wxDataObject *data );
82
83 // clears wxTheClipboard and the system's clipboard if possible
84 virtual void Clear();
85 };
86
87 // The global clipboard object
88 WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
89
90 //-----------------------------------------------------------------------------
91 // wxClipboardModule: module responsible for initializing the global clipboard
92 // object
93 //-----------------------------------------------------------------------------
94
95 class wxClipboardModule : public wxModule
96 {
97 DECLARE_DYNAMIC_CLASS(wxClipboardModule)
98
99 public:
100 wxClipboardModule() { }
101
102 bool OnInit();
103 void OnExit();
104 };
105
106 #endif // wxUSE_CLIPBOARD
107 #endif
108 // _WX_CLIPBRD_H_