]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/motif/clipbrd.h
Added userData to wxSizerItems and other things to make sizers more
[wxWidgets.git] / include / wx / motif / clipbrd.h
index 5c33021f49447e9873712f5aba3260db8a5f2700..781a9a0b94240d215e94eff5300bc321fc09d48f 100644 (file)
@@ -9,7 +9,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_CLIPBRD_H_
 #endif
 
 #include "wx/defs.h"
-#include "wx/setup.h"
 
-#include "wx/list.h"
+#if wxUSE_CLIPBOARD
+
+#include "wx/dataobj.h"
+
+#include "wx/module.h"
 
 bool WXDLLEXPORT wxOpenClipboard();
 bool WXDLLEXPORT wxClipboardOpen();
 bool WXDLLEXPORT wxCloseClipboard();
 bool WXDLLEXPORT wxEmptyClipboard();
-bool WXDLLEXPORT wxIsClipboardFormatAvailable(int dataFormat);
-bool WXDLLEXPORT wxSetClipboardData(int dataFormat, wxObject *obj, int width = 0, int height = 0);
-wxObject* WXDLLEXPORT wxGetClipboardData(int dataFormat, long *len = NULL);
-int  WXDLLEXPORT wxEnumClipboardFormats(int dataFormat);
-int  WXDLLEXPORT wxRegisterClipboardFormat(char *formatName);
-bool WXDLLEXPORT wxGetClipboardFormatName(int dataFormat, char *formatName, int maxCount);
+bool WXDLLEXPORT wxIsClipboardFormatAvailable(wxDataFormat dataFormat);
+bool WXDLLEXPORT wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int width = 0, int height = 0);
+wxObject* WXDLLEXPORT wxGetClipboardData(wxDataFormat dataFormat, long *len = NULL);
+wxDataFormat WXDLLEXPORT wxEnumClipboardFormats(wxDataFormat dataFormat);
+wxDataFormat WXDLLEXPORT wxRegisterClipboardFormat(char *formatName);
+bool WXDLLEXPORT wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int maxCount);
+
+//-----------------------------------------------------------------------------
+// wxClipboard
+//-----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDataObject;
+class WXDLLEXPORT wxClipboard: public wxObject
+{
+  DECLARE_DYNAMIC_CLASS(wxClipboard)
+
+public:
+
+  wxClipboard();
+  ~wxClipboard();
+
+  // open the clipboard before SetData() and GetData()
+  virtual bool Open();
+
+  // close the clipboard after SetData() and GetData()
+  virtual void Close();
+
+  // can be called several times
+  virtual bool SetData( wxDataObject *data );
+
+  // format available on the clipboard ?
+  // supply ID if private format, the same as wxPrivateDataObject::SetId()
+  virtual bool IsSupported( wxDataFormat format );
+
+  // 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.
+  inline void UsePrimarySelection(bool primary = TRUE) { m_usePrimary = primary; }
+
+ // implementation
+
+  bool              m_open;
+  wxList            m_data;
+  bool              m_usePrimary;
+};
+
+/* The clipboard */
+WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
+
+//-----------------------------------------------------------------------------
+// wxClipboardModule
+//-----------------------------------------------------------------------------
+
+class wxClipboardModule: public wxModule
+{
+  DECLARE_DYNAMIC_CLASS(wxClipboardModule)
+
+public:
+    wxClipboardModule() {}
+    bool OnInit();
+    void OnExit();
+};
+
+// This is the old, 1.68 implementation
+#if 0
 
 /* A clipboard client holds data belonging to the clipboard.
    For plain text, a client is not necessary. */
@@ -87,7 +154,7 @@ class WXDLLEXPORT wxClipboard : public wxObject
   char *GetClipboardData(char *format, long *length, long time);
 
   /* Get the clipboard client directly. Will be NULL if clipboard data
-     is a string, or if some other application owns the clipboard. 
+     is a string, or if some other application owns the clipboard.
      This can be useful for shortcutting data translation, if the
      clipboard user can check for a specific client. (This is used
      by the wxMediaEdit class.) */
@@ -100,5 +167,10 @@ void WXDLLEXPORT wxInitClipboard();
 /* The clipboard */
 WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard;
 
+#endif
+  // Old clipboard class
+
+#endif // wxUSE_CLIPBOARD
+
 #endif
     // _WX_CLIPBRD_H_