1) Register a XDropTargetListener on my target document window
2) Wait until I get a DropTargetDropEvent
3) Extract what I need from the event and manipulate the document
First question is, how do I get the listener set up? Apparently I need to go through XDataTransferProviderAccess and do something like this:
Code: Select all
css::uno::Reference< css::awt::XDataTransferProviderAccess > xTransfer( xFactory->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.awt.Toolkit") ), css::uno::UNO_QUERY );
if( xTransfer.is() ) {
css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = xTransfer->getDropTarget( xFrame->getContainerWindow() );
if( xDropTarget.is() ) {
xDropTarget->addDropTargetListener( xDropListener );
xDropTarget->setActive( sal_True );
}
}
Code: Select all
public synchronized void initialize( Object[] args ) throws com.sun.star.uno.Exception {
xFrame = ( XFrame )UnoRuntime.queryInterface( XFrame.class, args[0] );
}
A pointer to some existing code would be lovely...