]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/clipbrd.h
Apply choice patch for proper handling of clearing
[wxWidgets.git] / include / wx / gtk / clipbrd.h
index 2a4f2bd8a5a7a7b582be406bca1a7fffda8c2903..38f7c427c94fcff96cd600f34e7387e7bf703fd9 100644 (file)
 #ifndef __GTKCLIPBOARDH__
 #define __GTKCLIPBOARDH__
 
 #ifndef __GTKCLIPBOARDH__
 #define __GTKCLIPBOARDH__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface
 #endif
 
 #pragma interface
 #endif
 
-#include "wx/defs.h"
-
 #if wxUSE_CLIPBOARD
 
 #include "wx/object.h"
 #if wxUSE_CLIPBOARD
 
 #include "wx/object.h"
 #include "wx/control.h"
 #include "wx/module.h"
 
 #include "wx/control.h"
 #include "wx/module.h"
 
-//-----------------------------------------------------------------------------
-// classes
-//-----------------------------------------------------------------------------
-
-class wxClipboard;
-class wxClipboardModule;
-
-//-----------------------------------------------------------------------------
-// global data
-//-----------------------------------------------------------------------------
-
-extern wxClipboard* wxTheClipboard;
-
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // wxClipboard
 // wxClipboard
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 
 
-class wxClipboard : public wxObject
+class wxClipboard : public wxClipboardBase
 {
 {
-    DECLARE_DYNAMIC_CLASS(wxClipboard)
-
 public:
     wxClipboard();
     ~wxClipboard();
 public:
     wxClipboard();
     ~wxClipboard();
@@ -56,6 +39,9 @@ public:
     // close the clipboard after SetData() and GetData()
     virtual void Close();
 
     // close the clipboard after SetData() and GetData()
     virtual void Close();
 
+    // query whether the clipboard is opened
+    virtual bool IsOpened() const;
+
     // set the clipboard data. all other formats will be deleted.
     virtual bool SetData( wxDataObject *data );
 
     // set the clipboard data. all other formats will be deleted.
     virtual bool SetData( wxDataObject *data );
 
@@ -63,46 +49,39 @@ public:
     virtual bool AddData( wxDataObject *data );
 
     // ask if data in correct format is available
     virtual bool AddData( wxDataObject *data );
 
     // ask if data in correct format is available
-    virtual bool IsSupported( wxDataFormat format );
+    virtual bool IsSupported( const wxDataFormat& format );
 
     // fill data with data on the clipboard (if available)
 
     // fill data with data on the clipboard (if available)
-    virtual bool GetData( wxDataObject *data );
+    virtual bool GetData( wxDataObjectdata );
 
     // clears wxTheClipboard and the system's clipboard if possible
     virtual void Clear();
 
 
     // clears wxTheClipboard and the system's clipboard if possible
     virtual void Clear();
 
-    // implementation
-
+    // 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
     bool              m_open;
     bool              m_open;
-
     bool              m_ownsClipboard;
     bool              m_ownsPrimarySelection;
     bool              m_ownsClipboard;
     bool              m_ownsPrimarySelection;
+    wxDataObject     *m_data;
 
 
-    wxDataBroker     *m_dataBroker;
-    GtkWidget        *m_clipboardWidget;
+    GtkWidget        *m_clipboardWidget;  /* for getting and offering data */
+    GtkWidget        *m_targetsWidget;    /* for getting list of supported formats */
+    bool              m_waiting;          /* querying data or formats is asynchronous */
 
     bool              m_formatSupported;
     GdkAtom           m_targetRequested;
 
     bool              m_formatSupported;
     GdkAtom           m_targetRequested;
+    bool              m_usePrimary;
+    wxDataObject     *m_receivedData;
 
 
-    wxDataObject      *m_receivedData;
-};
-
-//-----------------------------------------------------------------------------
-// wxClipboardModule
-//-----------------------------------------------------------------------------
-
-class wxClipboardModule: public wxModule
-{
-  DECLARE_DYNAMIC_CLASS(wxClipboardModule)
-
-public:
-    wxClipboardModule() {}
-    bool OnInit();
-    void OnExit();
+private:
+    DECLARE_DYNAMIC_CLASS(wxClipboard)
 };
 
 #endif
 };
 
 #endif
-
    // wxUSE_CLIPBOARD
 
 #endif
    // wxUSE_CLIPBOARD
 
 #endif