1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir #ifndef _DBACCESS_UI_CALLBACKS_HXX_ 29*cdf0e10cSrcweir #define _DBACCESS_UI_CALLBACKS_HXX_ 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifndef _SOT_EXCHANGE_HXX 32*cdf0e10cSrcweir #include <sot/exchange.hxx> 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir #ifndef _SOT_FORMATS_HXX 35*cdf0e10cSrcweir #include <sot/formats.hxx> 36*cdf0e10cSrcweir #endif 37*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_CONTAINER_XCONTAINER_HPP_ 38*cdf0e10cSrcweir #include <com/sun/star/container/XContainer.hpp> 39*cdf0e10cSrcweir #endif 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir class CommandEvent; 42*cdf0e10cSrcweir class SvLBoxEntry; 43*cdf0e10cSrcweir class String; 44*cdf0e10cSrcweir class Point; 45*cdf0e10cSrcweir class PopupMenu; 46*cdf0e10cSrcweir class Control; 47*cdf0e10cSrcweir struct AcceptDropEvent; 48*cdf0e10cSrcweir struct ExecuteDropEvent; 49*cdf0e10cSrcweir 50*cdf0e10cSrcweir namespace cppu { class OInterfaceContainerHelper; } 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir //........................................................................ 53*cdf0e10cSrcweir namespace dbaui 54*cdf0e10cSrcweir { 55*cdf0e10cSrcweir //........................................................................ 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir class IController; 58*cdf0e10cSrcweir //==================================================================== 59*cdf0e10cSrcweir //= IControlActionListener 60*cdf0e10cSrcweir //==================================================================== 61*cdf0e10cSrcweir class SAL_NO_VTABLE IControlActionListener 62*cdf0e10cSrcweir { 63*cdf0e10cSrcweir public: 64*cdf0e10cSrcweir /** requests a quick help text to display 65*cdf0e10cSrcweir @return <FALSE/> if the default quick help text should be used 66*cdf0e10cSrcweir */ 67*cdf0e10cSrcweir virtual sal_Bool requestQuickHelp( const SvLBoxEntry* _pEntry, String& _rText ) const = 0; 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir /** handler for StartDrag requests 70*cdf0e10cSrcweir @return <TRUE/> if a drag operation was started 71*cdf0e10cSrcweir */ 72*cdf0e10cSrcweir virtual sal_Bool requestDrag( sal_Int8 _nAction, const Point& _rPosPixel ) = 0; 73*cdf0e10cSrcweir 74*cdf0e10cSrcweir /** check whether or not a drop request should be accepted 75*cdf0e10cSrcweir */ 76*cdf0e10cSrcweir virtual sal_Int8 queryDrop( const AcceptDropEvent& _rEvt, const DataFlavorExVector& _rFlavors ) = 0; 77*cdf0e10cSrcweir 78*cdf0e10cSrcweir /** execute a drop request 79*cdf0e10cSrcweir */ 80*cdf0e10cSrcweir virtual sal_Int8 executeDrop( const ExecuteDropEvent& _rEvt ) = 0; 81*cdf0e10cSrcweir }; 82*cdf0e10cSrcweir 83*cdf0e10cSrcweir //==================================================================== 84*cdf0e10cSrcweir //= IContextMenuProvider 85*cdf0e10cSrcweir //==================================================================== 86*cdf0e10cSrcweir class SAL_NO_VTABLE IContextMenuProvider 87*cdf0e10cSrcweir { 88*cdf0e10cSrcweir public: 89*cdf0e10cSrcweir /** returns the context menu for the control 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir Note that the menu does not need to care for the controls selection, or its 92*cdf0e10cSrcweir state in general. 93*cdf0e10cSrcweir The control itself will, using the controller provided by getCommandController, 94*cdf0e10cSrcweir disable menu entries as needed. 95*cdf0e10cSrcweir */ 96*cdf0e10cSrcweir virtual PopupMenu* getContextMenu( Control& _rControl ) const = 0; 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir /** returns the controller which is responsible for providing states of certain features, 99*cdf0e10cSrcweir and executing them. 100*cdf0e10cSrcweir */ 101*cdf0e10cSrcweir virtual IController& getCommandController() = 0; 102*cdf0e10cSrcweir 103*cdf0e10cSrcweir /** returns the container of registered context menu interceptors, or NULL if the implementation 104*cdf0e10cSrcweir does not support context menu interception 105*cdf0e10cSrcweir */ 106*cdf0e10cSrcweir virtual ::cppu::OInterfaceContainerHelper* 107*cdf0e10cSrcweir getContextMenuInterceptors() = 0; 108*cdf0e10cSrcweir 109*cdf0e10cSrcweir /** returns the current selection in the given control 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir This selection is used for filling a ContextMenuExecuteEvent event for the given 112*cdf0e10cSrcweir control. 113*cdf0e10cSrcweir */ 114*cdf0e10cSrcweir virtual ::com::sun::star::uno::Any 115*cdf0e10cSrcweir getCurrentSelection( Control& _rControl ) const = 0; 116*cdf0e10cSrcweir }; 117*cdf0e10cSrcweir 118*cdf0e10cSrcweir //==================================================================== 119*cdf0e10cSrcweir //= IDragTransferableListener 120*cdf0e10cSrcweir //==================================================================== 121*cdf0e10cSrcweir class SAL_NO_VTABLE IDragTransferableListener 122*cdf0e10cSrcweir { 123*cdf0e10cSrcweir public: 124*cdf0e10cSrcweir /// called when a drag operation done with a Transferable has been finished 125*cdf0e10cSrcweir virtual void dragFinished( ) = 0; 126*cdf0e10cSrcweir }; 127*cdf0e10cSrcweir 128*cdf0e10cSrcweir //........................................................................ 129*cdf0e10cSrcweir } // namespace dbaui 130*cdf0e10cSrcweir //........................................................................ 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir #endif // _DBACCESS_UI_CALLBACKS_HXX_ 133*cdf0e10cSrcweir 134