X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9005f2edfd988e7f4470a8460e6f96ea2287ba1f..8e77fd8bca165aab9709649d79a7cbc6a172d4e1:/include/wx/gtk/clipbrd.h?ds=sidebyside diff --git a/include/wx/gtk/clipbrd.h b/include/wx/gtk/clipbrd.h index df95600542..ff24ad33dc 100644 --- a/include/wx/gtk/clipbrd.h +++ b/include/wx/gtk/clipbrd.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/gtk/clipboard.h +// Name: wx/gtk/clipbrd.h // Purpose: wxClipboard for wxGTK // Author: Robert Roebling, Vadim Zeitlin // Id: $Id$ @@ -15,6 +15,8 @@ // wxClipboard // ---------------------------------------------------------------------------- +#include "wx/weakref.h" + class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase { public: @@ -46,6 +48,9 @@ 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 ); @@ -60,8 +65,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); @@ -73,12 +78,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); @@ -106,9 +118,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_formatSupported; +public: + // async stuff + wxEvtHandlerRef m_sink; +private: + GtkWidget *m_targetsWidgetAsync; // for getting list of supported formats DECLARE_DYNAMIC_CLASS(wxClipboard) };