| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: clipbrd.h
- // Purpose: interface of wxClipboard
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /**
- The backwards compatible access macro that returns the global clipboard
- object pointer.
- */
- #define wxTheClipboard
- /**
- @class wxClipboard
- A class for manipulating the clipboard.
- To use the clipboard, you call member functions of the global
- ::wxTheClipboard object.
- See the @ref overview_dataobject for further information.
- 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.
- For example:
- @code
- // Write some text to the clipboard
- if (wxTheClipboard->Open())
- {
- // This data objects are held by the clipboard,
- // so do not delete them in the app.
- wxTheClipboard->SetData( new wxTextDataObject("Some text") );
- wxTheClipboard->Close();
- }
- // Read some text
- if (wxTheClipboard->Open())
- {
- if (wxTheClipboard->IsSupported( wxDF_TEXT ))
- {
- wxTextDataObject data;
- wxTheClipboard->GetData( data );
- wxMessageBox( data.GetText() );
- }
- wxTheClipboard->Close();
- }
- @endcode
- @library{wxcore}
- @category{dnd}
- @see @ref overview_dnd, @ref overview_dataobject, wxDataObject
- */
- class wxClipboard : public wxObject
- {
- public:
- /**
- Default constructor.
- */
- wxClipboard();
- /**
- Destructor.
- */
- virtual ~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.
- @see SetData()
- */
- virtual bool AddData(wxDataObject* data);
- /**
- Clears the global clipboard object and the system's clipboard if
- possible.
- */
- virtual void Clear();
- /**
- Call this function to close the clipboard, having opened it with
- Open().
- */
- virtual 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.
- Currently this method is not implemented in X11-based ports, i.e.
- wxGTK, wxX11 and wxMotif and always returns @false there.
- @return @false if the operation is unsuccessful for any reason.
- */
- virtual bool Flush();
- /**
- Call this function to fill @a data with data on the clipboard, if
- available in the required format. Returns @true on success.
- */
- virtual bool GetData(wxDataObject& data);
- /**
- Returns @true if the clipboard has been opened.
- */
- virtual bool IsOpened() const;
- /**
- Returns @true if there is data which matches the data format of the
- given data object currently @b available on the clipboard.
- @todo The name of this function is misleading. This should be renamed
- to something that more accurately indicates what it does.
- */
- virtual bool IsSupported(const wxDataFormat& format);
- /**
- Returns @true if we are using the primary selection, @false if
- clipboard one.
- @see UsePrimarySelection()
- */
- bool IsUsingPrimarySelection() const;
- /**
- Call this function to open the clipboard before calling SetData() and
- GetData().
- Call Close() when you have finished with the clipboard. You should keep
- the clipboard open for only a very short time.
- @return @true on success. This should be tested (as in the sample
- shown above).
- */
- virtual 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.
- @see AddData()
- */
- virtual 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, 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
- selecting the "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.
- */
- virtual void UsePrimarySelection(bool primary = false);
- /**
- Returns the global instance (wxTheClipboard) of the clipboard object.
- */
- static wxClipboard *Get();
- };
|