#include "wx/dataobj.h"
#include "wx/mstream.h"
#include "wx/image.h"
+#include "wx/mac/private.h"
// ----------------------------------------------------------------------------
// functions
else if (m_type == wxDF_BITMAP || m_type == wxDF_METAFILE )
m_format = 'PICT';
else if (m_type == wxDF_FILENAME)
- m_format = 'SPEC';
+ m_format = kDragFlavorTypeHFS ;
else
{
wxFAIL_MSG( wxT("invalid dataformat") );
if (m_format == 'PICT')
m_type = wxDF_BITMAP;
else
- if (m_format == 'SPEC')
+ if (m_format == kDragFlavorTypeHFS )
m_type = wxDF_FILENAME;
else
m_type = wxDF_PRIVATE;
, const void* pBuf
)
{
- /* TODO */
+ m_filenames.Empty();
wxString sFile( (const char *)pBuf); /* char, not wxChar */
return FALSE;
}
- m_bitmap = vImage.ConvertToBitmap();
+ m_bitmap = wxBitmap( vImage ) ;
return m_bitmap.Ok();
}
if (!m_bitmap.Ok())
return;
- wxImage vImage(m_bitmap);
- wxPNGHandler vHandler;
- wxCountingOutputStream vCount;
+ wxCHECK_RET( wxImage::FindHandler(wxBITMAP_TYPE_PNG) != NULL,
+ wxT("You must call wxImage::AddHandler(new wxPNGHandler); to be able to use clipboard with bitmaps!") );
- vHandler.SaveFile(&vImage, vCount);
+ wxImage image = m_bitmap.ConvertToImage();
- m_pngSize = vCount.GetSize() + 100; // sometimes the size seems to vary ???
- m_pngData = malloc(m_pngSize);
+ wxCountingOutputStream count;
+ image.SaveFile(count, wxBITMAP_TYPE_PNG);
- wxMemoryOutputStream vMstream((char*) m_pngData, m_pngSize);
+ m_pngSize = count.GetSize() + 100; // sometimes the size seems to vary ???
+ m_pngData = malloc(m_pngSize);
- vHandler.SaveFile(&vImage, vMstream );
+ wxMemoryOutputStream mstream((char*) m_pngData, m_pngSize);
+ image.SaveFile(mstream, wxBITMAP_TYPE_PNG);
}