]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/clipbrd.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / gtk / clipbrd.h
index d9f59e75b1ab4fdcb1f140b9e8f9410f808881f0..28d84df8152445dba2dd47444de308a2b5b743d3 100644 (file)
@@ -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)
 };