X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7dab9892b3ad296d3d3664576f1d590f5fddf6bc..bc5c09a3aa3662137da2d781c0b101a598d2650d:/src/osx/carbon/dnd.cpp diff --git a/src/osx/carbon/dnd.cpp b/src/osx/carbon/dnd.cpp index b46737b0aa..29b9965bcc 100644 --- a/src/osx/carbon/dnd.cpp +++ b/src/osx/carbon/dnd.cpp @@ -58,94 +58,6 @@ wxDropTarget::wxDropTarget( wxDataObject *data ) wxMacEnsureTrackingHandlersInstalled(); } -bool wxDropTarget::CurrentDragHasSupportedFormat() -{ - bool supported = false; - if (m_dataObject == NULL) - return false; - - if ( gTrackingGlobals.m_currentSource != NULL ) - { - wxDataObject* data = gTrackingGlobals.m_currentSource->GetDataObject(); - - if ( data ) - { - size_t formatcount = data->GetFormatCount(); - wxDataFormat *array = new wxDataFormat[formatcount]; - data->GetAllFormats( array ); - for (size_t i = 0; !supported && i < formatcount; i++) - { - wxDataFormat format = array[i]; - if ( m_dataObject->IsSupported( format ) ) - { - supported = true; - break; - } - } - - delete [] array; - } - } - - if ( !supported ) - { - supported = m_dataObject->HasDataInPasteboard( m_currentDragPasteboard ); - } - - return supported; -} - -bool wxDropTarget::GetData() -{ - if (m_dataObject == NULL) - return false; - - if ( !CurrentDragHasSupportedFormat() ) - return false; - - bool transferred = false; - if ( gTrackingGlobals.m_currentSource != NULL ) - { - wxDataObject* data = gTrackingGlobals.m_currentSource->GetDataObject(); - - if (data != NULL) - { - size_t formatcount = data->GetFormatCount(); - wxDataFormat *array = new wxDataFormat[formatcount]; - data->GetAllFormats( array ); - for (size_t i = 0; !transferred && i < formatcount; i++) - { - wxDataFormat format = array[i]; - if ( m_dataObject->IsSupported( format ) ) - { - int size = data->GetDataSize( format ); - transferred = true; - - if (size == 0) - { - m_dataObject->SetData( format, 0, 0 ); - } - else - { - char *d = new char[size]; - data->GetDataHere( format, (void*)d ); - m_dataObject->SetData( format, size, d ); - delete [] d; - } - } - } - - delete [] array; - } - } - - if ( !transferred ) - { - transferred = m_dataObject->GetFromPasteboard( m_currentDragPasteboard ); - } - - return transferred; -} //------------------------------------------------------------------------- // wxDropSource @@ -162,6 +74,11 @@ wxDropSource::wxDropSource(wxWindow *win, m_window = win; } +wxDropSource* wxDropSource::GetCurrentDropSource() +{ + return gTrackingGlobals.m_currentSource; +} + wxDropSource::wxDropSource(wxDataObject& data, wxWindow *win, const wxCursor &cursorCopy,