]> git.saurik.com Git - wxWidgets.git/commitdiff
wxClipboard::IsOpened() and wxCLipboardLocker helper class added
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 21 Oct 1999 13:56:34 +0000 (13:56 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 21 Oct 1999 13:56:34 +0000 (13:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4105 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/clipbrd.h
include/wx/gtk/clipbrd.h
include/wx/gtk1/clipbrd.h
include/wx/msw/clipbrd.h
src/gtk/clipbrd.cpp
src/gtk1/clipbrd.cpp
src/msw/clipbrd.cpp

index 47f0af66b5e441b4964cee32ed42dbb8f3eac47b..0870a03d296243cebaff4555deea26fd0d04f3d7 100644 (file)
@@ -46,6 +46,9 @@ public:
     // close the clipboard after Add/SetData() and GetData()
     virtual void Close() = 0;
 
+    // query whether the clipboard is opened
+    virtual bool IsOpened() const = 0;
+
     // add to the clipboard data
     //
     // NB: the clipboard owns the pointer and will delete it, so data must be
@@ -102,6 +105,36 @@ public:
 // The global clipboard object
 WXDLLEXPORT_DATA(extern wxClipboard *) wxTheClipboard;
 
+// ----------------------------------------------------------------------------
+// helpful class for opening the clipboard and automatically closing it
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxClipboardLocker
+{
+public:
+    wxClipboardLocker(wxClipboard *clipboard = (wxClipboard *)NULL)
+    {
+        m_clipboard = clipboard ? clipboard : wxTheClipboard;
+        if ( m_clipboard )
+        {
+            m_clipboard->Open();
+        }
+    }
+
+    bool IsOk() const { return m_clipboard->IsOpened(); }
+
+    ~wxClipboardLocker()
+    {
+        if ( m_clipboard )
+        {
+            m_clipboard->Close();
+        }
+    }
+
+private:
+    wxClipboard *m_clipboard;
+};
+
 #endif // wxUSE_CLIPBOARD
 
 #endif // _WX_CLIPBRD_H_BASE_
index b6d2583e84144d3ca4a5c30b8916b9d5333cee8e..0bc454dc22910c7a7422c98a87cb5e907181dbae 100644 (file)
@@ -39,6 +39,9 @@ public:
     // 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 );
 
index b6d2583e84144d3ca4a5c30b8916b9d5333cee8e..0bc454dc22910c7a7422c98a87cb5e907181dbae 100644 (file)
@@ -39,6 +39,9 @@ public:
     // 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 );
 
index 05c8cef304e0542ae6eb46e6175c2094328294d6..67f9d9d4fba8a9d34bf78f7b9de59fec4a903889 100644 (file)
@@ -66,6 +66,9 @@ public:
     // 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 );
 
index 1304b0ddf1d282afbbead3a9155e58501b568bbe..b9f24728221167d079f6ca724b21fc4f74f5611a 100644 (file)
@@ -544,6 +544,11 @@ void wxClipboard::Close()
     m_open = FALSE;
 }
 
+bool wxClipboard::IsOpened() const
+{
+    return m_open;
+}
+
 bool wxClipboard::IsSupported( const wxDataFormat& format )
 {
     /* store requested format to be asked for by callbacks */
index 1304b0ddf1d282afbbead3a9155e58501b568bbe..b9f24728221167d079f6ca724b21fc4f74f5611a 100644 (file)
@@ -544,6 +544,11 @@ void wxClipboard::Close()
     m_open = FALSE;
 }
 
+bool wxClipboard::IsOpened() const
+{
+    return m_open;
+}
+
 bool wxClipboard::IsSupported( const wxDataFormat& format )
 {
     /* store requested format to be asked for by callbacks */
index f8287de98adcf6730466fbd31ff68759423a3ca3..d9ca91ec449636965bfca7a19cab8c4cb072fe3e 100644 (file)
@@ -474,6 +474,15 @@ bool wxClipboard::Open()
 #endif
 }
 
+bool wxClipboard::IsOpened() const
+{
+#if wxUSE_OLE_CLIPBOARD
+    return TRUE;
+#else
+    return wxIsClipboardOpened();
+#endif
+}
+
 bool wxClipboard::SetData( wxDataObject *data )
 {
     (void)wxEmptyClipboard();