X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/544cd5ac172091c5469834af919040a11ca17f40..f8d0234d39c66f3d1d7fc2346562cb96c8c7be20:/src/osx/carbon/dnd.cpp diff --git a/src/osx/carbon/dnd.cpp b/src/osx/carbon/dnd.cpp index 7982c1357b..bc0f7e5485 100644 --- a/src/osx/carbon/dnd.cpp +++ b/src/osx/carbon/dnd.cpp @@ -57,6 +57,12 @@ wxDragResult wxDropTarget::OnDragOver( return CurrentDragHasSupportedFormat() ? def : wxDragNone; } +wxDataFormat wxDropTarget::GetMatchingPair() +{ + wxFAIL_MSG("wxDropTarget::GetMatchingPair() not implemented in src/osx/carbon/dnd.cpp"); + return wxDF_INVALID; +} + bool wxDropTarget::OnDrop( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y) ) { if (m_dataObject == NULL) @@ -109,12 +115,7 @@ bool wxDropTarget::CurrentDragHasSupportedFormat() if ( !supported ) { - PasteboardRef pasteboard; - - if ( GetDragPasteboard( (DragReference)m_currentDrag, &pasteboard ) == noErr ) - { - supported = m_dataObject->HasDataInPasteboard( pasteboard ); - } + supported = m_dataObject->HasDataInPasteboard( m_currentDragPasteboard ); } return supported; @@ -166,12 +167,7 @@ bool wxDropTarget::GetData() if ( !transferred ) { - PasteboardRef pasteboard; - - if ( GetDragPasteboard( (DragReference)m_currentDrag, &pasteboard ) == noErr ) - { - transferred = m_dataObject->GetFromPasteboard( pasteboard ); - } + transferred = m_dataObject->GetFromPasteboard( m_currentDragPasteboard ); } return transferred; @@ -231,6 +227,7 @@ wxDragResult wxDropSource::DoDragDrop(int flags) if ((m_data == NULL) || (m_data->GetFormatCount() == 0)) return (wxDragResult)wxDragNone; +#if wxOSX_USE_CARBON DragReference theDrag; RgnHandle dragRegion; OSStatus err = noErr; @@ -305,6 +302,7 @@ wxDragResult wxDropSource::DoDragDrop(int flags) DisposeDrag( theDrag ); CFRelease( pasteboard ); gTrackingGlobals.m_currentSource = NULL; +#endif return gTrackingGlobals.m_result; } @@ -325,15 +323,18 @@ bool gTrackingGlobalsInstalled = false; // passing the globals via refcon is not needed by the CFM and later architectures anymore // but I'll leave it in there, just in case... +#if wxOSX_USE_CARBON pascal OSErr wxMacWindowDragTrackingHandler( DragTrackingMessage theMessage, WindowPtr theWindow, void *handlerRefCon, DragReference theDrag ); pascal OSErr wxMacWindowDragReceiveHandler( WindowPtr theWindow, void *handlerRefCon, DragReference theDrag ); +#endif void wxMacEnsureTrackingHandlersInstalled() { +#if wxOSX_USE_CARBON if ( !gTrackingGlobalsInstalled ) { OSStatus err; @@ -346,8 +347,10 @@ void wxMacEnsureTrackingHandlersInstalled() gTrackingGlobalsInstalled = true; } +#endif } +#if wxOSX_USE_CARBON pascal OSErr wxMacWindowDragTrackingHandler( DragTrackingMessage theMessage, WindowPtr theWindow, void *handlerRefCon, DragReference theDrag ) @@ -358,7 +361,8 @@ pascal OSErr wxMacWindowDragTrackingHandler( DragAttributes attributes; GetDragAttributes( theDrag, &attributes ); - + PasteboardRef pasteboard = 0; + GetDragPasteboard( theDrag, &pasteboard ); wxNonOwnedWindow* toplevel = wxNonOwnedWindow::GetFromWXWindow( (WXWindow) theWindow ); bool optionDown = GetCurrentKeyModifiers() & optionKey; @@ -416,7 +420,7 @@ pascal OSErr wxMacWindowDragTrackingHandler( #ifndef __LP64__ HideDragHilite( theDrag ); #endif - trackingGlobals->m_currentTarget->SetCurrentDrag( theDrag ); + trackingGlobals->m_currentTarget->SetCurrentDragPasteboard( pasteboard ); trackingGlobals->m_currentTarget->OnLeave(); trackingGlobals->m_currentTarget = NULL; trackingGlobals->m_currentTargetWindow = NULL; @@ -431,7 +435,7 @@ pascal OSErr wxMacWindowDragTrackingHandler( { if ( trackingGlobals->m_currentTarget ) { - trackingGlobals->m_currentTarget->SetCurrentDrag( theDrag ); + trackingGlobals->m_currentTarget->SetCurrentDragPasteboard( pasteboard ); result = trackingGlobals->m_currentTarget->OnEnter( localx, localy, result ); } @@ -456,7 +460,7 @@ pascal OSErr wxMacWindowDragTrackingHandler( { if ( trackingGlobals->m_currentTarget ) { - trackingGlobals->m_currentTarget->SetCurrentDrag( theDrag ); + trackingGlobals->m_currentTarget->SetCurrentDragPasteboard( pasteboard ); result = trackingGlobals->m_currentTarget->OnDragOver( localx, localy, result ); } } @@ -506,7 +510,7 @@ pascal OSErr wxMacWindowDragTrackingHandler( if (trackingGlobals->m_currentTarget) { - trackingGlobals->m_currentTarget->SetCurrentDrag( theDrag ); + trackingGlobals->m_currentTarget->SetCurrentDragPasteboard( pasteboard ); trackingGlobals->m_currentTarget->OnLeave(); #ifndef __LP64__ HideDragHilite( theDrag ); @@ -534,7 +538,9 @@ pascal OSErr wxMacWindowDragReceiveHandler( Point mouse, localMouse; int localx, localy; - trackingGlobals->m_currentTarget->SetCurrentDrag( theDrag ); + PasteboardRef pasteboard = 0; + GetDragPasteboard( theDrag, &pasteboard ); + trackingGlobals->m_currentTarget->SetCurrentDragPasteboard( pasteboard ); GetDragMouse( theDrag, &mouse, 0L ); localMouse = mouse; localx = localMouse.h; @@ -562,6 +568,7 @@ pascal OSErr wxMacWindowDragReceiveHandler( return noErr; } +#endif #endif // wxUSE_DRAG_AND_DROP