1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_vcl.hxx" 26 27 28 29 #include <vcl/dndhelp.hxx> 30 31 using namespace ::com::sun::star; 32 33 vcl::unohelper::DragAndDropClient::~DragAndDropClient() {} 34 35 void vcl::unohelper::DragAndDropClient::dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& /*dge*/ ) throw (::com::sun::star::uno::RuntimeException) 36 { 37 } 38 39 void vcl::unohelper::DragAndDropClient::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& /*dsde*/ ) throw (::com::sun::star::uno::RuntimeException) 40 { 41 } 42 43 void vcl::unohelper::DragAndDropClient::dragEnter( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& /*dsde*/ ) throw (::com::sun::star::uno::RuntimeException) 44 { 45 } 46 47 void vcl::unohelper::DragAndDropClient::dragExit( const ::com::sun::star::datatransfer::dnd::DragSourceEvent& /*dse*/ ) throw (::com::sun::star::uno::RuntimeException) 48 { 49 } 50 51 void vcl::unohelper::DragAndDropClient::dragOver( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& /*dsde*/ ) throw (::com::sun::star::uno::RuntimeException) 52 { 53 } 54 55 void vcl::unohelper::DragAndDropClient::dropActionChanged( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& /*dsde*/ ) throw (::com::sun::star::uno::RuntimeException) 56 { 57 } 58 59 void vcl::unohelper::DragAndDropClient::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& /*dtde*/ ) throw (::com::sun::star::uno::RuntimeException) 60 { 61 } 62 63 void vcl::unohelper::DragAndDropClient::dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& /*dtdee*/ ) throw (::com::sun::star::uno::RuntimeException) 64 { 65 } 66 67 void vcl::unohelper::DragAndDropClient::dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& /*dte*/ ) throw (::com::sun::star::uno::RuntimeException) 68 { 69 } 70 71 void vcl::unohelper::DragAndDropClient::dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& /*dtde*/ ) throw (::com::sun::star::uno::RuntimeException) 72 { 73 } 74 75 void vcl::unohelper::DragAndDropClient::dropActionChanged( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& /*dtde*/ ) throw (::com::sun::star::uno::RuntimeException) 76 { 77 } 78 79 // ======================================================================= 80 81 vcl::unohelper::DragAndDropWrapper::DragAndDropWrapper( DragAndDropClient* pClient ) 82 { 83 mpClient = pClient; 84 } 85 86 vcl::unohelper::DragAndDropWrapper::~DragAndDropWrapper() 87 { 88 } 89 90 // uno::XInterface 91 uno::Any vcl::unohelper::DragAndDropWrapper::queryInterface( const uno::Type & rType ) throw(uno::RuntimeException) 92 { 93 uno::Any aRet = ::cppu::queryInterface( rType, 94 SAL_STATIC_CAST( ::com::sun::star::lang::XEventListener*, (::com::sun::star::datatransfer::dnd::XDragGestureListener*)this ), 95 SAL_STATIC_CAST( ::com::sun::star::datatransfer::dnd::XDragGestureListener*, this ), 96 SAL_STATIC_CAST( ::com::sun::star::datatransfer::dnd::XDragSourceListener*, this ), 97 SAL_STATIC_CAST( ::com::sun::star::datatransfer::dnd::XDropTargetListener*, this ) ); 98 return (aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType )); 99 } 100 101 // ::com::sun::star::lang::XEventListener 102 void vcl::unohelper::DragAndDropWrapper::disposing( const ::com::sun::star::lang::EventObject& rEvent ) throw (::com::sun::star::uno::RuntimeException) 103 { 104 // Empty Source means it's the client, because the client is not a XInterface 105 if ( !rEvent.Source.is() ) 106 mpClient = NULL; 107 } 108 109 110 // ::com::sun::star::datatransfer::dnd::XDragGestureListener 111 void vcl::unohelper::DragAndDropWrapper::dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& rDGE ) throw (::com::sun::star::uno::RuntimeException) 112 { 113 if ( mpClient ) 114 mpClient->dragGestureRecognized( rDGE ); 115 } 116 117 // ::com::sun::star::datatransfer::dnd::XDragSourceListener 118 void vcl::unohelper::DragAndDropWrapper::dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& rDSDE ) throw (::com::sun::star::uno::RuntimeException) 119 { 120 if ( mpClient ) 121 mpClient->dragDropEnd( rDSDE ); 122 } 123 124 void vcl::unohelper::DragAndDropWrapper::dragEnter( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException) 125 { 126 if ( mpClient ) 127 mpClient->dragEnter( dsde ); 128 } 129 130 void vcl::unohelper::DragAndDropWrapper::dragExit( const ::com::sun::star::datatransfer::dnd::DragSourceEvent& dse ) throw (::com::sun::star::uno::RuntimeException) 131 { 132 if ( mpClient ) 133 mpClient->dragExit( dse ); 134 } 135 136 void vcl::unohelper::DragAndDropWrapper::dragOver( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException) 137 { 138 if ( mpClient ) 139 mpClient->dragOver( dsde ); 140 } 141 142 void vcl::unohelper::DragAndDropWrapper::dropActionChanged( const ::com::sun::star::datatransfer::dnd::DragSourceDragEvent& dsde ) throw (::com::sun::star::uno::RuntimeException) 143 { 144 if ( mpClient ) 145 mpClient->dropActionChanged( dsde ); 146 } 147 148 // ::com::sun::star::datatransfer::dnd::XDropTargetListener 149 void vcl::unohelper::DragAndDropWrapper::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException) 150 { 151 if ( mpClient ) 152 mpClient->drop( rDTDE ); 153 } 154 155 void vcl::unohelper::DragAndDropWrapper::dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& rDTDEE ) throw (::com::sun::star::uno::RuntimeException) 156 { 157 if ( mpClient ) 158 mpClient->dragEnter( rDTDEE ); 159 } 160 161 void vcl::unohelper::DragAndDropWrapper::dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& dte ) throw (::com::sun::star::uno::RuntimeException) 162 { 163 if ( mpClient ) 164 mpClient->dragExit( dte ); 165 } 166 167 void vcl::unohelper::DragAndDropWrapper::dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException) 168 { 169 if ( mpClient ) 170 mpClient->dragOver( rDTDE ); 171 } 172 173 void vcl::unohelper::DragAndDropWrapper::dropActionChanged( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& rDTDE ) throw (::com::sun::star::uno::RuntimeException) 174 { 175 if ( mpClient ) 176 mpClient->dropActionChanged( rDTDE ); 177 } 178 179