2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: clipbrd.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxClipboard
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxClipboard
|
|
|
|
@wxheader{clipbrd.h}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
A class for manipulating the clipboard. Note that this is not compatible with
|
|
|
|
the
|
|
|
|
clipboard class from wxWidgets 1.xx, which has the same name but a different
|
|
|
|
implementation.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
To use the clipboard, you call member functions of the global @b wxTheClipboard
|
|
|
|
object.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
See also the @ref overview_wxdataobjectoverview for further information.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Call wxClipboard::Open to get ownership of the clipboard. If this operation
|
|
|
|
returns @true, you
|
|
|
|
now own the clipboard. Call wxClipboard::SetData to put data
|
|
|
|
on the clipboard, or wxClipboard::GetData to
|
|
|
|
retrieve data from the clipboard. Call wxClipboard::Close to close
|
|
|
|
the clipboard and relinquish ownership. You should keep the clipboard open only
|
|
|
|
momentarily.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
For example:
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@code
|
|
|
|
// Write some text to the clipboard
|
|
|
|
if (wxTheClipboard-Open())
|
|
|
|
{
|
2008-03-08 09:43:31 -05:00
|
|
|
// This data objects are held by the clipboard,
|
2008-03-08 08:52:38 -05:00
|
|
|
// so do not delete them in the app.
|
|
|
|
wxTheClipboard-SetData( new wxTextDataObject("Some text") );
|
|
|
|
wxTheClipboard-Close();
|
|
|
|
}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
// Read some text
|
|
|
|
if (wxTheClipboard-Open())
|
|
|
|
{
|
|
|
|
if (wxTheClipboard-IsSupported( wxDF_TEXT ))
|
|
|
|
{
|
|
|
|
wxTextDataObject data;
|
|
|
|
wxTheClipboard-GetData( data );
|
|
|
|
wxMessageBox( data.GetText() );
|
2008-03-08 09:43:31 -05:00
|
|
|
}
|
2008-03-08 08:52:38 -05:00
|
|
|
wxTheClipboard-Close();
|
|
|
|
}
|
|
|
|
@endcode
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxcore}
|
|
|
|
@category{dnd}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see @ref overview_wxdndoverview, wxDataObject
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxClipboard : public wxObject
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Constructor.
|
|
|
|
*/
|
|
|
|
wxClipboard();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Destructor.
|
|
|
|
*/
|
|
|
|
~wxClipboard();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Call this function to add the data object to the clipboard. You may call
|
|
|
|
this function repeatedly after having cleared the clipboard using Clear().
|
|
|
|
After this function has been called, the clipboard owns the data, so do not
|
|
|
|
delete
|
|
|
|
the data explicitly.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see SetData()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
bool AddData(wxDataObject* data);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Clears the global clipboard object and the system's clipboard if possible.
|
|
|
|
*/
|
|
|
|
void Clear();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Call this function to close the clipboard, having opened it with Open().
|
|
|
|
*/
|
|
|
|
void Close();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Flushes the clipboard: this means that the data which is currently on
|
|
|
|
clipboard will stay available even after the application exits (possibly
|
|
|
|
eating memory), otherwise the clipboard will be emptied on exit.
|
|
|
|
Returns @false if the operation is unsuccessful for any reason.
|
|
|
|
*/
|
|
|
|
bool Flush();
|
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Call this function to fill @a data with data on the clipboard, if available in
|
2008-03-08 08:52:38 -05:00
|
|
|
the required
|
|
|
|
format. Returns @true on success.
|
|
|
|
*/
|
|
|
|
bool GetData(wxDataObject& data);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Returns @true if the clipboard has been opened.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
bool IsOpened() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns @true if there is data which matches the data format of the given data
|
|
|
|
object currently @b available (IsSupported sounds like a misnomer, FIXME: better deprecate this name?) on the clipboard.
|
|
|
|
*/
|
|
|
|
bool IsSupported(const wxDataFormat& format);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Returns @true if we are using the primary selection, @false if clipboard
|
|
|
|
one.
|
|
|
|
See @ref useprimary() UsePrimarySelection for more information.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
bool IsUsingPrimarySelection() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
Call this function to open the clipboard before calling SetData()
|
2008-03-08 08:52:38 -05:00
|
|
|
and GetData().
|
|
|
|
Call Close() when you have finished with the clipboard. You
|
|
|
|
should keep the clipboard open for only a very short time.
|
|
|
|
Returns @true on success. This should be tested (as in the sample shown above).
|
|
|
|
*/
|
|
|
|
bool Open();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Call this function to set the data object to the clipboard. This function will
|
|
|
|
clear all previous contents in the clipboard, so calling it several times
|
|
|
|
does not make any sense.
|
|
|
|
After this function has been called, the clipboard owns the data, so do not
|
|
|
|
delete
|
|
|
|
the data explicitly.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see AddData()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
bool SetData(wxDataObject* data);
|
|
|
|
|
|
|
|
/**
|
|
|
|
On platforms supporting it (all X11-based ports), wxClipboard uses the
|
|
|
|
CLIPBOARD X11 selection by default. When this function is called with @true
|
|
|
|
argument, all subsequent clipboard operations will use PRIMARY selection until
|
|
|
|
this function is called again with @false.
|
|
|
|
On the other platforms, there is no PRIMARY selection and so all clipboard
|
|
|
|
operations will fail. This allows to implement the standard X11 handling of the
|
|
|
|
clipboard which consists in copying data to the CLIPBOARD selection only when
|
|
|
|
the user explicitly requests it (i.e. by selection @c "Copy" menu
|
|
|
|
command) but putting the currently selected text into the PRIMARY selection
|
|
|
|
automatically, without overwriting the normal clipboard contents with the
|
|
|
|
currently selected text on the other platforms.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
void UsePrimarySelection(bool primary = true);
|
2008-03-08 08:52:38 -05:00
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|