X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eddb964405c1db1a931a347611aed0af6ee0e3b7..9869c26285dc51d13607cddaa04f65ce983653a5:/include/wx/gtk/clipbrd.h?ds=sidebyside diff --git a/include/wx/gtk/clipbrd.h b/include/wx/gtk/clipbrd.h index d9f59e75b1..28d84df815 100644 --- a/include/wx/gtk/clipbrd.h +++ b/include/wx/gtk/clipbrd.h @@ -1,8 +1,7 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/gtk/clipboard.h +// Name: wx/gtk/clipbrd.h // Purpose: wxClipboard for wxGTK // Author: Robert Roebling, Vadim Zeitlin -// Id: $Id$ // Copyright: (c) 1998 Robert Roebling // (c) 2007 Vadim Zeitlin // Licence: wxWindows licence @@ -15,6 +14,8 @@ // wxClipboard // ---------------------------------------------------------------------------- +#include "wx/weakref.h" + class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase { public: @@ -46,17 +47,16 @@ public: // ask if data in correct format is available virtual bool IsSupported( const wxDataFormat& format ); + // ask if data in correct format is available + virtual bool IsSupportedAsync( wxEvtHandler *sink ); + // fill data with data on the clipboard (if available) virtual bool GetData( wxDataObject& data ); // clears wxTheClipboard and the system's clipboard if possible virtual void Clear(); - // If primary == TRUE, use primary selection in all further ops, - // primary == FALSE resets it. - virtual void UsePrimarySelection(bool primary = TRUE) - { m_usePrimary = primary; } - + // implementation from now on // -------------------------- @@ -64,8 +64,8 @@ public: // get our clipboard item (depending on m_usePrimary value) GdkAtom GTKGetClipboardAtom() const; - // get the data object currently being used - wxDataObject *GTKGetDataObject() { return Data(); } + // get the data object currently being requested + wxDataObject *GTKGetDataObject( GdkAtom atom ); // clear the data for the given clipboard kind void GTKClearData(Kind kind); @@ -77,12 +77,19 @@ public: bool GTKOnTargetReceived(const wxDataFormat& format); private: + // the data object for the specific selection + wxDataObject *& Data(Kind kind) + { + return kind == Primary ? m_dataPrimary : m_dataClipboard; + } + // the data object we're currently using wxDataObject *& Data() { - return m_usePrimary ? m_dataPrimary : m_dataClipboard; + return Data(m_usePrimary ? Primary : Clipboard); } + // set or unset selection ownership bool SetSelectionOwner(bool set = true); @@ -110,10 +117,17 @@ private: GtkWidget *m_clipboardWidget; // for getting and offering data GtkWidget *m_targetsWidget; // for getting list of supported formats + // ID of the connection to "selection_get" signal, initially 0. + unsigned long m_idSelectionGetHandler; + bool m_open; - bool m_usePrimary; bool m_formatSupported; +public: + // async stuff + wxEvtHandlerRef m_sink; +private: + GtkWidget *m_targetsWidgetAsync; // for getting list of supported formats DECLARE_DYNAMIC_CLASS(wxClipboard) };