X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b6dbb09746f8f5ee0549a2ff39ae0ac4c725898..d88de032d3009be88d0f0ba4a882784aa9493331:/include/wx/motif/clipbrd.h diff --git a/include/wx/motif/clipbrd.h b/include/wx/motif/clipbrd.h index 5c33021f49..781a9a0b94 100644 --- a/include/wx/motif/clipbrd.h +++ b/include/wx/motif/clipbrd.h @@ -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_ @@ -20,20 +20,87 @@ #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_