From 3922ecc98e00774e7c4d3b2ab122d3bdcc246393 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 21 Oct 1999 02:06:27 +0000 Subject: [PATCH] more files for wxDataObject change git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/ole/dataform.h | 12 +++--- include/wx/msw/ole/dataobj2.h | 78 +++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 include/wx/msw/ole/dataobj2.h diff --git a/include/wx/msw/ole/dataform.h b/include/wx/msw/ole/dataform.h index 020d4aec75..f071c37461 100644 --- a/include/wx/msw/ole/dataform.h +++ b/include/wx/msw/ole/dataform.h @@ -19,8 +19,8 @@ class WXDLLEXPORT wxDataFormat { public: - // the clipboard formats under Win32 are UINTs - typedef unsigned int NativeFormat; + // the clipboard formats under Win32 are WORDs + typedef unsigned short NativeFormat; wxDataFormat(NativeFormat format = wxDF_INVALID) { m_format = format; } wxDataFormat(const wxChar *format) { SetId(format); } @@ -48,19 +48,19 @@ public: NativeFormat GetFormatId() const { return m_format; } operator NativeFormat() const { return m_format; } - // this only works with standard ids - void SetType(wxDataFormatId format) { m_format = format; } - wxDataFormatId GetType() const { return m_format; } + // this works with standard as well as custom ids + void SetType(NativeFormat format) { m_format = format; } + NativeFormat GetType() const { return m_format; } // string ids are used for custom types - this SetId() must be used for // application-specific formats wxString GetId() const; void SetId(const wxChar *format); -private: // returns TRUE if the format is one of those defined in wxDataFormatId bool IsStandard() const { return m_format > 0 && m_format < wxDF_MAX; } +private: NativeFormat m_format; }; diff --git a/include/wx/msw/ole/dataobj2.h b/include/wx/msw/ole/dataobj2.h new file mode 100644 index 0000000000..5bb231f9f0 --- /dev/null +++ b/include/wx/msw/ole/dataobj2.h @@ -0,0 +1,78 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/msw/ole/dataobj2.h +// Purpose: second part of platform specific wxDataObject header - +// declarations of predefined wxDataObjectSimple-derived classes +// Author: Vadim Zeitlin +// Modified by: +// Created: 21.10.99 +// RCS-ID: $Id$ +// Copyright: (c) 1999 Vadim Zeitlin +// Licence: wxWindows license +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_MSW_OLE_DATAOBJ2_H +#define _WX_MSW_OLE_DATAOBJ2_H + +// ---------------------------------------------------------------------------- +// wxBitmapDataObject is a specialization of wxDataObject for bitmap data +// +// NB: in fact, under MSW we support CF_DIB (and not CF_BITMAP) clipboard +// format and we also provide wxBitmapDataObject2 for CF_BITMAP (which is +// rarely used). This is ugly, but I haven't found a solution for it yet. +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxBitmapDataObject : public wxBitmapDataObjectBase +{ +public: + // ctors + wxBitmapDataObject(const wxBitmap& bitmap = wxNullBitmap) + : wxBitmapDataObjectBase(bitmap) + { + SetFormat(wxDF_DIB); + + m_data = NULL; + } + + // implement base class pure virtuals + virtual size_t GetDataSize() const; + virtual bool GetDataHere(void *buf) const; + virtual bool SetData(size_t len, const void *buf); + +private: + // the DIB data + void /* BITMAPINFO */ *m_data; +}; + +// ---------------------------------------------------------------------------- +// wxBitmapDataObject2 - a data object for CF_BITMAP +// +// FIXME did I already mention it was ugly? +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxBitmapDataObject2 : public wxBitmapDataObjectBase +{ +public: + // ctors + wxBitmapDataObject2(const wxBitmap& bitmap = wxNullBitmap) + : wxBitmapDataObjectBase(bitmap) + { + } + + // implement base class pure virtuals + virtual size_t GetDataSize() const; + virtual bool GetDataHere(void *buf) const; + virtual bool SetData(size_t len, const void *buf); +}; + +// ---------------------------------------------------------------------------- +// wxFileDataObject - data object for CF_HDROP +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxFileDataObject : public wxFileDataObjectBase +{ +public: + // implement base class pure virtuals + virtual bool SetData(size_t len, const void *buf); +}; + +#endif // _WX_MSW_OLE_DATAOBJ2_H -- 2.45.2