From 977ea6b6bfaa9ce2793e5ccfc82b611849b33553 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Mon, 28 Jul 2003 19:07:26 +0000 Subject: [PATCH] Added wxClipboard and wxDataObject (and friends) declarations and stubs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/cocoa/clipbrd.h | 52 +++++++++++++++++++++++ include/wx/cocoa/dataform.h | 51 ++++++++++++++++++++++ include/wx/cocoa/dataobj.h | 24 +++++++++++ include/wx/cocoa/dataobj2.h | 84 +++++++++++++++++++++++++++++++++++++ src/cocoa/clipbrd.mm | 68 ++++++++++++++++++++++++++++++ src/cocoa/dataobj.mm | 60 ++++++++++++++++++++++++++ 6 files changed, 339 insertions(+) create mode 100644 include/wx/cocoa/clipbrd.h create mode 100644 include/wx/cocoa/dataform.h create mode 100644 include/wx/cocoa/dataobj.h create mode 100644 include/wx/cocoa/dataobj2.h create mode 100644 src/cocoa/clipbrd.mm create mode 100644 src/cocoa/dataobj.mm diff --git a/include/wx/cocoa/clipbrd.h b/include/wx/cocoa/clipbrd.h new file mode 100644 index 0000000000..29c95bc812 --- /dev/null +++ b/include/wx/cocoa/clipbrd.h @@ -0,0 +1,52 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/cocoa/clipboard.h +// Purpose: wxClipboard +// Author: David Elliott +// Modified by: +// Created: 2003/07/23 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_COCOA_CLIPBRD_H__ +#define __WX_COCOA_CLIPBRD_H__ + +#include "wx/dataobj.h" + +//========================================================================= +// wxClipboard +//========================================================================= +class wxClipboard : public wxClipboardBase +{ + 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(); + + // 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 ); + + // add to the clipboard data. + virtual bool AddData( wxDataObject *data ); + + // ask if data in correct format is available + virtual bool IsSupported( const 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(); +}; + +#endif //__WX_COCOA_CLIPBRD_H__ diff --git a/include/wx/cocoa/dataform.h b/include/wx/cocoa/dataform.h new file mode 100644 index 0000000000..e4f915905a --- /dev/null +++ b/include/wx/cocoa/dataform.h @@ -0,0 +1,51 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/cocoa/dataform.h +// Purpose: declaration of the wxDataFormat class +// Author: David Elliott +// Modified by: +// Created: 2003/07/23 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_COCOA_DATAFORM_H__ +#define __WX_COCOA_DATAFORM_H__ + +class wxDataFormat +{ +public: + wxDataFormat(unsigned int uFormat = wxDF_INVALID) { m_uFormat = uFormat; } + wxDataFormat(const wxChar* zFormat) { SetId(zFormat); } + + wxDataFormat& operator=(unsigned int uFormat) { m_uFormat = uFormat; return(*this); } + wxDataFormat& operator=(const wxDataFormat& rFormat) {m_uFormat = rFormat.m_uFormat; return(*this); } + + // + // Comparison (must have both versions) + // + bool operator==(wxDataFormatId eFormat) const { return (m_uFormat == (unsigned int)eFormat); } + bool operator!=(wxDataFormatId eFormat) const { return (m_uFormat != (unsigned int)eFormat); } + bool operator==(const wxDataFormat& rFormat) const { return (m_uFormat == rFormat.m_uFormat); } + bool operator!=(const wxDataFormat& rFormat) const { return (m_uFormat != rFormat.m_uFormat); } + operator unsigned int(void) const { return m_uFormat; } + + unsigned int GetFormatId(void) const { return (unsigned int)m_uFormat; } + unsigned int GetType(void) const { return (unsigned int)m_uFormat; } + + bool IsStandard(void) const; + + void SetType(unsigned int uType){ m_uFormat = uType; } + + // + // String ids are used for custom types - this SetId() must be used for + // application-specific formats + // + wxString GetId(void) const; + void SetId(const wxChar* pId); + +private: + unsigned int m_uFormat; +}; // end of CLASS wxDataFormat + +#endif // __WX_COCOA_DATAFORM_H__ diff --git a/include/wx/cocoa/dataobj.h b/include/wx/cocoa/dataobj.h new file mode 100644 index 0000000000..666d24a8a3 --- /dev/null +++ b/include/wx/cocoa/dataobj.h @@ -0,0 +1,24 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/cocoa/dataobj.h +// Purpose: declaration of the wxDataObject +// Author: David Elliott +// Modified by: +// Created: 2003/07/23 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_COCOA_DATAOBJ_H__ +#define __WX_COCOA_DATAOBJ_H__ + +class wxDataObject : public wxDataObjectBase +{ +public: + wxDataObject(); + virtual ~wxDataObject(); + virtual bool IsSupportedFormat(const wxDataFormat& format, + Direction dir = Get) const; +}; + +#endif // __WX_COCOA_DATAOBJ_H__ diff --git a/include/wx/cocoa/dataobj2.h b/include/wx/cocoa/dataobj2.h new file mode 100644 index 0000000000..5c2f561778 --- /dev/null +++ b/include/wx/cocoa/dataobj2.h @@ -0,0 +1,84 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/cocoa/dataobj2.h +// Purpose: declaration of standard wxDataObjectSimple-derived classes +// Author: David Elliott +// Modified by: +// Created: 2003/07/23 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_COCOA_DATAOBJ2_H__ +#define __WX_COCOA_DATAOBJ2_H__ + +//========================================================================= +// wxBitmapDataObject is a specialization of wxDataObject for bitmaps +//========================================================================= +class wxBitmapDataObject : public wxBitmapDataObjectBase +{ +public: + // ctors + wxBitmapDataObject(); + wxBitmapDataObject(const wxBitmap& bitmap); + + // destr + ~wxBitmapDataObject(); + + // override base class virtual to update PNG data too + virtual void SetBitmap(const wxBitmap& bitmap); + + // implement base class pure virtuals + // ---------------------------------- + + virtual size_t GetDataSize() const { return m_pngSize; } + virtual bool GetDataHere(void *buf) const; + virtual bool SetData(size_t len, const void *buf); + +protected: + void Init() { m_pngData = (void *)NULL; m_pngSize = 0; } + void Clear() { free(m_pngData); } + void ClearAll() { Clear(); Init(); } + + size_t m_pngSize; + void *m_pngData; + + void DoConvertToPng(); + +private: + // virtual function hiding supression + size_t GetDataSize(const wxDataFormat& format) const + { return(wxDataObjectSimple::GetDataSize(format)); } + bool GetDataHere(const wxDataFormat& format, void* pBuf) const + { return(wxDataObjectSimple::GetDataHere(format, pBuf)); } + bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf) + { return(wxDataObjectSimple::SetData(format, nLen, pBuf)); } +}; + +//========================================================================= +// wxFileDataObject is a specialization of wxDataObject for file names +//========================================================================= + +class wxFileDataObject : public wxFileDataObjectBase +{ +public: + // implement base class pure virtuals + // ---------------------------------- + + void AddFile( const wxString &filename ); + + virtual size_t GetDataSize() const; + virtual bool GetDataHere(void *buf) const; + virtual bool SetData(size_t len, const void *buf); + +private: + // virtual function hiding supression + size_t GetDataSize(const wxDataFormat& format) const + { return(wxDataObjectSimple::GetDataSize(format)); } + bool GetDataHere(const wxDataFormat& format, void* pBuf) const + { return(wxDataObjectSimple::GetDataHere(format, pBuf)); } + bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf) + { return(wxDataObjectSimple::SetData(format, nLen, pBuf)); } +}; + +#endif //__WX_COCOA_DATAOBJ2_H__ diff --git a/src/cocoa/clipbrd.mm b/src/cocoa/clipbrd.mm new file mode 100644 index 0000000000..03d814cbe1 --- /dev/null +++ b/src/cocoa/clipbrd.mm @@ -0,0 +1,68 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: src/cocoa/clipbrd.mm +// Purpose: wxClipboard +// Author: David Elliott +// Modified by: +// Created: 2003/07/23 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#include "wx/wxprec.h" + +#if wxUSE_CLIPBOARD + +#ifndef WX_PRECOMP +#endif //WX_PRECOMP +#include "wx/clipbrd.h" + +IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) + +wxClipboard::wxClipboard() +{ +} + +wxClipboard::~wxClipboard() +{ +} + +bool wxClipboard::Open() +{ + return false; +} + +void wxClipboard::Close() +{ +} + +bool wxClipboard::IsOpened() const +{ + return false; +} + +bool wxClipboard::SetData(wxDataObject *data) +{ + return false; +} + +bool wxClipboard::AddData(wxDataObject *data) +{ + return false; +} + +bool wxClipboard::IsSupported(const wxDataFormat& format) +{ + return false; +} + +bool wxClipboard::GetData(wxDataObject& data) +{ + return false; +} + +void wxClipboard::Clear() +{ +} + +#endif //wxUSE_CLIPBOARD diff --git a/src/cocoa/dataobj.mm b/src/cocoa/dataobj.mm new file mode 100644 index 0000000000..2326aa7ed4 --- /dev/null +++ b/src/cocoa/dataobj.mm @@ -0,0 +1,60 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: src/cocoa/dataobj.mm +// Purpose: wxDataObject +// Author: David Elliott +// Modified by: +// Created: 2003/07/23 +// RCS-ID: $Id$ +// Copyright: (c) 2003 David Elliott +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#include "wx/wxprec.h" + +#if wxUSE_DATAOBJ + +#ifndef WX_PRECOMP +#endif //WX_PRECOMP +#include "wx/dataobj.h" + +wxDataObject::wxDataObject() +{ +} + +wxDataObject::~wxDataObject() +{ +} + +bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, + Direction dir) const +{ + return false; +} + +wxBitmapDataObject::wxBitmapDataObject() +{ +} + +wxBitmapDataObject::wxBitmapDataObject(const wxBitmap& bitmap) +{ +} + +wxBitmapDataObject::~wxBitmapDataObject() +{ +} + +void wxBitmapDataObject::SetBitmap(const wxBitmap& bitmap) +{ +} + +bool wxBitmapDataObject::SetData(size_t len, const void *buf) +{ + return false; +} + +bool wxBitmapDataObject::GetDataHere(void *buf) const +{ + return false; +} + +#endif //wxUSE_DATAOBJ -- 2.45.2