X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2a391f87180f6f6a04a472722521204504005c0d..919312f76764a6fee2422664d2251c4e6b6be993:/src/mac/dataobj.cpp diff --git a/src/mac/dataobj.cpp b/src/mac/dataobj.cpp index 3d6437c7b7..ebf1f0dbed 100644 --- a/src/mac/dataobj.cpp +++ b/src/mac/dataobj.cpp @@ -1,12 +1,12 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: os2/dataobj.cpp -// Purpose: implementation of wx[I]DataObject class -// Author: David Webster +// Name: mac/dataobj.cpp +// Purpose: implementation of wxDataObject class +// Author: Stefan Csomor // Modified by: // Created: 10/21/99 // RCS-ID: $Id$ -// Copyright: (c) 1999 David Webster -// Licence: wxWindows license +// Copyright: (c) 1999 Stefan Csomor +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -34,6 +34,7 @@ #include "wx/mstream.h" #include "wx/image.h" #include "wx/mac/private.h" +#include "Scrap.h" // ---------------------------------------------------------------------------- // functions @@ -73,40 +74,46 @@ void wxDataFormat::SetType( wxDataFormatId Type ) { m_type = Type; - if (m_type == wxDF_TEXT) - m_format = 'TEXT'; + if (m_type == wxDF_TEXT ) + m_format = kScrapFlavorTypeText; + else if (m_type == wxDF_UNICODETEXT ) + m_format = kScrapFlavorTypeUnicode ; else if (m_type == wxDF_BITMAP || m_type == wxDF_METAFILE ) - m_format = 'PICT'; + m_format = kScrapFlavorTypePicture; else if (m_type == wxDF_FILENAME) m_format = kDragFlavorTypeHFS ; else { wxFAIL_MSG( wxT("invalid dataformat") ); - } -} -wxDataFormatId wxDataFormat::GetType() const -{ - return m_type; + // this is '????' but it can't be used in the code because ??' is + // parsed as a trigraph! + m_format = 0x3f3f3f3f; + } } wxString wxDataFormat::GetId() const { - wxString sRet(""); // TODO: to name of ( m_format ) ); - return sRet; + // note that m_format is not a pointer to string, it *is* itself a 4 + // character string + char text[5] ; + strncpy( text , (char*) &m_format , 4 ) ; + text[4] = 0 ; + + return wxString::FromAscii( text ) ; } void wxDataFormat::SetId( NativeFormat format ) { m_format = format; - if (m_format == 'TEXT') + if (m_format == kScrapFlavorTypeText) m_type = wxDF_TEXT; - else - if (m_format == 'PICT') + else if (m_format == kScrapFlavorTypeUnicode ) + m_type = wxDF_UNICODETEXT; + else if (m_format == kScrapFlavorTypePicture) m_type = wxDF_BITMAP; - else - if (m_format == kDragFlavorTypeHFS ) + else if (m_format == kDragFlavorTypeHFS ) m_type = wxDF_FILENAME; else m_type = wxDF_PRIVATE; @@ -114,8 +121,6 @@ void wxDataFormat::SetId( NativeFormat format ) void wxDataFormat::SetId( const wxChar* zId ) { - wxString tmp(zId); - m_type = wxDF_PRIVATE; m_format = 0;// TODO: get the format gdk_atom_intern( wxMBSTRINGCAST tmp.mbc_str(), FALSE ); } @@ -141,7 +146,7 @@ bool wxDataObject::IsSupportedFormat( } else { - wxDataFormat* pFormats = new wxDataFormat[nFormatCount]; + wxDataFormat* pFormats = new wxDataFormat[nFormatCount]; GetAllFormats( pFormats ,vDir ); @@ -183,7 +188,7 @@ bool wxFileDataObject::GetDataHere( size_t wxFileDataObject::GetDataSize() const { - size_t nRes = 0; + size_t nRes = 0; for (size_t i = 0; i < m_filenames.GetCount(); i++) { @@ -201,9 +206,7 @@ bool wxFileDataObject::SetData( { m_filenames.Empty(); - wxString sFile( (const char *)pBuf); /* char, not wxChar */ - - AddFile(sFile); + AddFile(wxString::FromAscii((char*)pBuf)); return TRUE; } @@ -225,15 +228,15 @@ wxBitmapDataObject::wxBitmapDataObject() } wxBitmapDataObject::wxBitmapDataObject( - const wxBitmap& rBitmap + const wxBitmap& rBitmap ) : wxBitmapDataObjectBase(rBitmap) { Init(); if ( m_bitmap.Ok() ) { - m_pictHandle = m_bitmap.GetPict( &m_pictCreated ) ; - } + m_pictHandle = m_bitmap.GetPict( &m_pictCreated ) ; + } } wxBitmapDataObject::~wxBitmapDataObject() @@ -249,23 +252,23 @@ void wxBitmapDataObject::SetBitmap( wxBitmapDataObjectBase::SetBitmap(rBitmap); if ( m_bitmap.Ok() ) { - m_pictHandle = m_bitmap.GetPict( &m_pictCreated ) ; - } + m_pictHandle = m_bitmap.GetPict( &m_pictCreated ) ; + } } void wxBitmapDataObject::Init() { - m_pictHandle = NULL ; - m_pictCreated = false ; + m_pictHandle = NULL ; + m_pictCreated = false ; } void wxBitmapDataObject::Clear() { - if ( m_pictCreated && m_pictHandle ) - { - KillPicture( (PicHandle) m_pictHandle ) ; - } - m_pictHandle = NULL ; + if ( m_pictCreated && m_pictHandle ) + { + KillPicture( (PicHandle) m_pictHandle ) ; + } + m_pictHandle = NULL ; } bool wxBitmapDataObject::GetDataHere( @@ -283,7 +286,7 @@ bool wxBitmapDataObject::GetDataHere( size_t wxBitmapDataObject::GetDataSize() const { - return GetHandleSize((Handle)m_pictHandle) ; + return GetHandleSize((Handle)m_pictHandle) ; } bool wxBitmapDataObject::SetData( @@ -299,7 +302,7 @@ bool wxBitmapDataObject::SetData( Rect frame = (**picHandle).picFrame ; m_bitmap.SetPict( picHandle ) ; - m_bitmap.SetWidth( frame.right - frame.left ) ; - m_bitmap.SetHeight( frame.bottom - frame.top ) ; + m_bitmap.SetWidth( frame.right - frame.left ) ; + m_bitmap.SetHeight( frame.bottom - frame.top ) ; return m_bitmap.Ok(); }