From 21ec3bf99cbdf50d3ba4d59142e24714212ab2c3 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sat, 19 Nov 2005 13:05:14 +0000 Subject: [PATCH] patch 1352744 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/clipbrd.cpp | 106 ++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 54 deletions(-) diff --git a/src/mac/carbon/clipbrd.cpp b/src/mac/carbon/clipbrd.cpp index e36fc50548..20c8f1acec 100644 --- a/src/mac/carbon/clipbrd.cpp +++ b/src/mac/carbon/clipbrd.cpp @@ -60,10 +60,8 @@ void *wxGetClipboardData(wxDataFormat dataFormat, long *len) case wxDF_METAFILE : break ; default: - { - wxLogError(_("Unsupported clipboard format.")); - return NULL; - } + // custom datatype + break ; } #if TARGET_CARBON @@ -226,12 +224,12 @@ bool wxClipboard::AddData( wxDataObject *data ) wxCHECK_MSG( data, false, wxT("data is invalid") ); - /* we can only store one wxDataObject */ + // we can only store one wxDataObject Clear(); m_data = data; - /* get formats from wxDataObjects */ + // get formats from wxDataObjects wxDataFormat *array = new wxDataFormat[ m_data->GetFormatCount() ]; m_data->GetAllFormats( array ); @@ -272,6 +270,7 @@ bool wxClipboard::AddData( wxDataObject *data ) mactype = kScrapFlavorTypePicture ; break ; default: + mactype = (OSType)(array[i].GetFormatId()); break ; } UMAPutScrap( sz , mactype , buf ) ; @@ -297,7 +296,6 @@ void wxClipboard::Close() delete m_data; m_data = (wxDataObject*) NULL; } - } bool wxClipboard::IsSupported( const wxDataFormat &dataFormat ) @@ -351,59 +349,59 @@ bool wxClipboard::GetData( wxDataObject& data ) if ( m_data ) { - for (size_t i = 0; !transferred && i < formatcount ; i++) - { - wxDataFormat format = array[i] ; - if ( m_data->IsSupported( format ) ) - { - int size = m_data->GetDataSize( format ); - transferred = true ; - - if (size == 0) - { - data.SetData(format , 0 , 0 ) ; - } - else + for (size_t i = 0; !transferred && i < formatcount ; i++) + { + wxDataFormat format = array[i] ; + if ( m_data->IsSupported( format ) ) { - char *d = new char[size]; - m_data->GetDataHere( format , (void*) d ); - data.SetData( format , size , d ) ; - delete[] d ; + int size = m_data->GetDataSize( format ); + transferred = true ; + + if (size == 0) + { + data.SetData(format , 0 , 0 ) ; + } + else + { + char *d = new char[size]; + m_data->GetDataHere( format , (void*) d ); + data.SetData( format , size , d ) ; + delete[] d ; + } } - } - } + } } - /* get formats from wxDataObjects */ + + // get formats from wxDataObjects if ( !transferred ) { - for (size_t i = 0; !transferred && i < formatcount ; i++) - { - wxDataFormat format = array[i] ; - - switch ( format.GetType() ) - { - case wxDF_TEXT : - case wxDF_UNICODETEXT: - case wxDF_OEMTEXT : - case wxDF_BITMAP : - case wxDF_METAFILE : - { - long len ; - char* s = (char*)wxGetClipboardData(format, &len ); - if ( s ) - { - data.SetData( format , len , s ) ; - delete [] s; - - transferred = true ; - } - } - break ; - - default : + for (size_t i = 0; !transferred && i < formatcount ; i++) + { + wxDataFormat format = array[i] ; + + switch ( format.GetType() ) + { + // NOTE: this is usable for all data types + case wxDF_TEXT : + case wxDF_UNICODETEXT: + case wxDF_OEMTEXT : + case wxDF_BITMAP : + case wxDF_METAFILE : + default : + { + long len ; + char* s = (char*)wxGetClipboardData(format, &len ); + if ( s ) + { + data.SetData( format , len , s ) ; + delete [] s; + + transferred = true ; + } + } break ; - } - } + } + } } delete[] array ; -- 2.45.2