1/////////////////////////////////////////////////////////////////////////////
2// Name:        clipbrd.h
3// Purpose:     Clipboard functionality.
4//              Note: this functionality is under review, and
5//              is derived from wxWidgets 1.xx code. Please contact
6//              the wxWidgets developers for further information.
7// Author:      David Webster
8// Modified by:
9// Created:     10/13/99
10// RCS-ID:      $Id: clipbrd.h 41020 2006-09-05 20:47:48Z VZ $
11// Copyright:   (c) David Webster
12// Licence:     wxWindows licence
13/////////////////////////////////////////////////////////////////////////////
14
15#ifndef _WX_CLIPBRD_H_
16#define _WX_CLIPBRD_H_
17
18#if wxUSE_CLIPBOARD
19
20#include "wx/list.h"
21#include "wx/module.h"
22#include "wx/dataobj.h"     // for wxDataFormat
23
24// These functions superceded by wxClipboard, but retained in order to
25// implement wxClipboard, and for compatibility.
26
27// open/close the clipboard
28WXDLLEXPORT bool wxOpenClipboard();
29WXDLLEXPORT bool wxIsClipboardOpened();
30#define wxClipboardOpen wxIsClipboardOpened
31WXDLLEXPORT bool wxCloseClipboard();
32
33// get/set data
34WXDLLEXPORT bool wxEmptyClipboard();
35WXDLLEXPORT bool wxSetClipboardData(wxDataFormat dataFormat,
36                                    const void *data,
37                                    int width = 0, int height = 0);
38WXDLLEXPORT void* wxGetClipboardData(wxDataFormat dataFormat,
39                                     long *len = NULL);
40
41// clipboard formats
42WXDLLEXPORT bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat);
43WXDLLEXPORT wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat);
44WXDLLEXPORT int  wxRegisterClipboardFormat(wxChar *formatName);
45WXDLLEXPORT bool wxGetClipboardFormatName(wxDataFormat dataFormat,
46                                          wxChar *formatName,
47                                          int maxCount);
48
49//-----------------------------------------------------------------------------
50// wxClipboard
51//-----------------------------------------------------------------------------
52
53class WXDLLEXPORT wxDataObject;
54class WXDLLEXPORT wxClipboard : public wxClipboardBase
55{
56    DECLARE_DYNAMIC_CLASS(wxClipboard)
57
58public:
59    wxClipboard();
60    virtual ~wxClipboard();
61
62    // open the clipboard before SetData() and GetData()
63    virtual bool Open();
64
65    // close the clipboard after SetData() and GetData()
66    virtual void Close();
67
68    // query whether the clipboard is opened
69    virtual bool IsOpened() const;
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( const 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    // flushes the clipboard: this means that the data which is currently on
87    // clipboard will stay available even after the application exits (possibly
88    // eating memory), otherwise the clipboard will be emptied on exit
89    virtual bool Flush();
90
91    // X11 has two clipboards which get selected by this call. Empty on MSW.
92    void UsePrimarySelection( bool WXUNUSED(primary) = FALSE ) { }
93
94private:
95    bool m_clearOnExit;
96};
97
98#endif // wxUSE_CLIPBOARD
99#endif
100    // _WX_CLIPBRD_H_
101