1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_frame_XRecordableDispatch_idl__ 28#define __com_sun_star_frame_XRecordableDispatch_idl__ 29 30#ifndef __com_sun_star_uno_XInterface_idl__ 31#include <com/sun/star/uno/XInterface.idl> 32#endif 33 34#ifndef __com_sun_star_frame_XDispatchRecorder_idl__ 35#include <com/sun/star/frame/XDispatchRecorder.idl> 36#endif 37 38#ifndef __com_sun_star_util_URL_idl__ 39#include <com/sun/star/util/URL.idl> 40#endif 41 42//============================================================================= 43 44 module com { module sun { module star { module frame { 45 46//============================================================================= 47/** extends an existing <type>XDispatch</type> implementation with functionality 48 for dispatch recording 49 50 <p> 51 This interface can be implemented as an additional one beside an existing 52 <type>XDispatch</type> one to provide record functionality of dispatches. 53 Because it's an additional interface the status events are available there 54 and not at this interface. 55 </p> 56 57 <p> 58 But normaly this interface mustn't be used directly. 59 If a dispatch object is well known and recording was enabled 60 on a <type>XDispatchRecorderSupplier</type> it's possible to use method 61 <member>XDispatchRecorderSupplier::dispatchAndRecord()</member> of it 62 to make dispatch and recording automaticly. The interface XRecordableDispatch 63 is used transparently there. 64 </p> 65 66 @example 67 <listing> 68 <i>XDispatch</i> xDispatcher = xFrame.queryDispatch(aURL,"",0); 69 <i>XRecordableDispatch</i> xRecordable = (<i>XRecordableDispatch</i>)UnoRuntime.queryInterface( 70 XRecordableDispatch.class, 71 xDispatcher); 72 73 xDispatcher.addStatusListener(this,aURL); 74 75 <b>if</b> (xRecordable!=<b>null</b>) 76 xRecordable.dispatchAndRecord(aURL,lArguments,xRecorder); 77 else 78 xDispatcher.dispatch(aURL,lArguments); 79 ... 80 xDispatcher.removeStatusListener(this,aURL); 81 </listing> 82 83 @see XDispatchRecorderSupplier 84 @see XDispatch 85 86 @since OOo 1.1.2 87 */ 88published interface XRecordableDispatch: com::sun::star::uno::XInterface 89{ 90 //------------------------------------------------------------------------- 91 /** dispatch and record it 92 93 @param URL 94 full parsed URL wich describe the feature which should be dispatched (executed) 95 96 @param Arguments 97 optional arguments for this request 98 (see <type scope="com::sun::star::document">MediaDescriptor</type> for details) 99 100 @param Recorder 101 object which can be used to record the request 102 (available on <member>XDispatchRecorderSupplier::getDispatchRecorder()</member>) 103 */ 104 [oneway] void dispatchAndRecord( 105 [in] com::sun::star::util::URL URL, 106 [in] sequence<com::sun::star::beans::PropertyValue> Arguments, 107 [in] XDispatchRecorder Recorder); 108}; 109 110//============================================================================= 111 112}; }; }; }; 113 114#endif 115