Size dataSize ;
Ptr theData ;
GetFlavorDataSize((DragReference)m_currentDrag, theItem, theType, &dataSize);
- if ( theType == 'TEXT' )
- dataSize++ ;
+ if ( theType == 'TEXT' )
+ {
+ // this increment is only valid for allocating, on the next GetFlavorData
+ // call it is reset again to the original value
+ dataSize++ ;
+ }
theData = new char[dataSize];
GetFlavorData((DragReference)m_currentDrag, theItem, theType, (void*) theData, &dataSize, 0L);
if( theType == 'TEXT' )
theData[dataSize]=0 ;
if ( wxApp::s_macDefaultEncodingIsPC )
{
- wxMacConvertToPC((char*)theData) ;
+ wxMacConvertToPC((char*)theData,(char*)theData,dataSize) ;
}
m_dataObject->SetData( format, dataSize, theData );
}
}
-wxDragResult wxDropSource::DoDragDrop( bool allowMove )
+wxDragResult wxDropSource::DoDragDrop(int WXUNUSED(flags))
{
wxASSERT_MSG( m_data, wxT("Drop source: no data") );
dataSize-- ;
if ( wxApp::s_macDefaultEncodingIsPC )
{
- wxMacConvertFromPC((char*)dataPtr) ;
+ wxMacConvertFromPC((char*)dataPtr,(char*)dataPtr,dataSize) ;
}
AddDragItemFlavor(theDrag, theItem, type , dataPtr, dataSize, 0);
}
dragRegion = NewRgn();
RgnHandle tempRgn = NewRgn() ;
- EventRecord* ev = (EventRecord*) wxTheApp->MacGetCurrentEvent() ;
+ EventRecord* ev = NULL ;
+#if !TARGET_CARBON // TODO
+ ev = (EventRecord*) wxTheApp->MacGetCurrentEvent() ;
+#else
+ EventRecord rec ;
+ ev = &rec ;
+ wxMacConvertEventToRecord( (EventRef) wxTheApp->MacGetCurrentEvent() , &rec ) ;
+#endif
const short dragRegionOuterBoundary = 10 ;
const short dragRegionInnerBoundary = 9 ;
return(noErr);
}
-pascal OSErr wxMacWindowDragReceiveHandler(WindowPtr theWindow, void *handlerRefCon,
-DragReference theDrag)
+pascal OSErr wxMacWindowDragReceiveHandler(WindowPtr theWindow,
+ void *handlerRefCon,
+ DragReference theDrag)
{
MacTrackingGlobals* trackingGlobals = (MacTrackingGlobals*) handlerRefCon;
if ( trackingGlobals->m_currentTarget )