merged tag ooo/OOO330_m14
[LibreOffice.git] / offapi / com / sun / star / frame / XRecordableDispatch.idl
blob189dfb04ab5a9767ec763aa8bebfdc4774cab065
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
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.
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).
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.
26 ************************************************************************/
27 #ifndef __com_sun_star_frame_XRecordableDispatch_idl__
28 #define __com_sun_star_frame_XRecordableDispatch_idl__
30 #ifndef __com_sun_star_uno_XInterface_idl__
31 #include <com/sun/star/uno/XInterface.idl>
32 #endif
34 #ifndef __com_sun_star_frame_XDispatchRecorder_idl__
35 #include <com/sun/star/frame/XDispatchRecorder.idl>
36 #endif
38 #ifndef __com_sun_star_util_URL_idl__
39 #include <com/sun/star/util/URL.idl>
40 #endif
42 //=============================================================================
44 module com { module sun { module star { module frame {
46 //=============================================================================
47 /** extends an existing <type>XDispatch</type> implementation with functionality
48 for dispatch recording
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>
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>
66 @example
67 <listing>
68 <i>XDispatch</i> xDispatcher = xFrame.queryDispatch(aURL,"",0);
69 <i>XRecordableDispatch</i> xRecordable = (<i>XRecordableDispatch</i>)UnoRuntime.queryInterface(
70 &nbsp;&nbsp;XRecordableDispatch.class,
71 &nbsp;&nbsp;xDispatcher);
73 xDispatcher.addStatusListener(this,aURL);
75 <b>if</b> (xRecordable!=<b>null</b>)
76 &nbsp;&nbsp;xRecordable.dispatchAndRecord(aURL,lArguments,xRecorder);
77 else
78 &nbsp;&nbsp;xDispatcher.dispatch(aURL,lArguments);
79 ...
80 xDispatcher.removeStatusListener(this,aURL);
81 </listing>
83 @see XDispatchRecorderSupplier
84 @see XDispatch
86 @since OOo 1.1.2
88 published interface XRecordableDispatch: com::sun::star::uno::XInterface
90 //-------------------------------------------------------------------------
91 /** dispatch and record it
93 @param URL
94 full parsed URL wich describe the feature which should be dispatched (executed)
96 @param Arguments
97 optional arguments for this request
98 (see <type scope="com::sun::star::document">MediaDescriptor</type> for details)
100 @param Recorder
101 object which can be used to record the request
102 (available on <member>XDispatchRecorderSupplier::getDispatchRecorder()</member>)
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);
110 //=============================================================================
112 }; }; }; };
114 #endif