X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/33ac7e6f01acbac1cff0ad400d8ea7f0bfd0a62f..02a1dfbae942c883d8651e34dcfbc5153aabc56e:/src/msw/clipbrd.cpp?ds=sidebyside diff --git a/src/msw/clipbrd.cpp b/src/msw/clipbrd.cpp index baf1e064b2..a3b4611af4 100644 --- a/src/msw/clipbrd.cpp +++ b/src/msw/clipbrd.cpp @@ -55,15 +55,20 @@ #include #include "wx/msw/private.h" + +#ifndef __WXMICROWIN__ #include "wx/msw/dib.h" +#endif // wxDataObject is tied to OLE/drag and drop implementation, therefore so are // the functions using wxDataObject in wxClipboard -#define wxUSE_DATAOBJ wxUSE_DRAG_AND_DROP +//#define wxUSE_DATAOBJ wxUSE_DRAG_AND_DROP #if wxUSE_DATAOBJ #include "wx/dataobj.h" +#endif +#if wxUSE_OLE // use OLE clipboard #define wxUSE_OLE_CLIPBOARD 1 #else // !wxUSE_DATAOBJ @@ -365,10 +370,8 @@ void *wxGetClipboardData(wxDataFormat dataFormat, long *len) case CF_TIFF: case CF_PALETTE: case wxDF_DIB: - { - wxLogError(_("Unsupported clipboard format.")); - return FALSE; - } + wxLogError(_("Unsupported clipboard format.")); + return NULL; case wxDF_OEMTEXT: dataFormat = wxDF_TEXT; @@ -560,7 +563,7 @@ bool wxClipboard::AddData( wxDataObject *data ) #elif wxUSE_DATAOBJ wxCHECK_MSG( wxIsClipboardOpened(), FALSE, wxT("clipboard not open") ); - wxDataFormat format = data->GetFormat(); + wxDataFormat format = data->GetPreferredFormat(); switch ( format ) { @@ -577,23 +580,35 @@ bool wxClipboard::AddData( wxDataObject *data ) { wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data; wxBitmap bitmap(bitmapDataObject->GetBitmap()); - return wxSetClipboardData(data->GetFormat(), &bitmap); + return wxSetClipboardData(data->GetPreferredFormat(), &bitmap); } #if wxUSE_METAFILE case wxDF_METAFILE: { +#if 1 + // TODO + wxLogError("Not implemented because wxMetafileDataObject does not contain width and height values."); + return FALSE; +#else wxMetafileDataObject* metaFileDataObject = (wxMetafileDataObject*) data; wxMetafile metaFile = metaFileDataObject->GetMetafile(); return wxSetClipboardData(wxDF_METAFILE, &metaFile, metaFileDataObject->GetWidth(), metaFileDataObject->GetHeight()); +#endif } #endif // wxUSE_METAFILE default: - return wxSetClipboardData(data); + { +// This didn't compile, of course +// return wxSetClipboardData(data); + // TODO + wxLogError("Not implemented."); + return FALSE; + } } #else // !wxUSE_DATAOBJ return FALSE; @@ -628,7 +643,7 @@ bool wxClipboard::GetData( wxDataObject& data ) // build the list of supported formats size_t nFormats = data.GetFormatCount(wxDataObject::Set); wxDataFormat format; - wxDataFormat *formats; + wxDataFormat *formats; if ( nFormats == 1 ) { // the most common case @@ -771,7 +786,7 @@ bool wxClipboard::GetData( wxDataObject& data ) #elif wxUSE_DATAOBJ wxCHECK_MSG( wxIsClipboardOpened(), FALSE, wxT("clipboard not open") ); - wxDataFormat format = data.GetFormat(); + wxDataFormat format = data.GetPreferredFormat(); switch ( format ) { case wxDF_TEXT: @@ -792,7 +807,7 @@ bool wxClipboard::GetData( wxDataObject& data ) case wxDF_DIB: { wxBitmapDataObject& bitmapDataObject = (wxBitmapDataObject &)data; - wxBitmap* bitmap = (wxBitmap *)wxGetClipboardData(data->GetFormat()); + wxBitmap* bitmap = (wxBitmap *)wxGetClipboardData(data.GetPreferredFormat()); if ( !bitmap ) return FALSE; @@ -823,7 +838,5 @@ bool wxClipboard::GetData( wxDataObject& data ) #endif // wxUSE_OLE_CLIPBOARD/wxUSE_DATAOBJ } -#else -// #error "Please turn wxUSE_CLIPBOARD on to compile this file." #endif // wxUSE_CLIPBOARD