merged tag ooo/OOO330_m14
[LibreOffice.git] / offapi / com / sun / star / frame / XDispatchRecorderSupplier.idl
blobc63e34dec1e9397cec0db56a8900d8ae513ac018
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_XDispatchRecorderSupplier_idl__
28 #define __com_sun_star_frame_XDispatchRecorderSupplier_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_XDispatch_idl__
35 #include <com/sun/star/frame/XDispatch.idl>
36 #endif
38 #ifndef __com_sun_star_frame_XDispatchRecorder_idl__
39 #include <com/sun/star/frame/XDispatchRecorder.idl>
40 #endif
42 //=============================================================================
44 module com { module sun { module star { module frame {
46 //=============================================================================
47 /** provides access to the record mechanism of dispatches
49 <p>
50 With a <type>XDispatchRecorder</type> it's possible to record calls
51 of <member>XDispatch::dispatch()</member>. The recorded data (may a script)
52 can be used to automate recorded dispatch and start it at later time again.
53 This supplier provides access to the recorder and supports some functionality
54 to work with the mcaro recording mechanism in an easy manner.
55 </p>
57 @see XDispatchRecorder
58 @since OOo 1.1.2
60 published interface XDispatchRecorderSupplier: com::sun::star::uno::XInterface
62 //-------------------------------------------------------------------------
63 /** set a dispatch recorder on this supplier
65 <p>
66 Setting of a new recorder make it possible to change recording mode.
67 May there can exist different implementations of a recorder (e.g. to
68 generate Java, Basic or other formats). Changing between local recording
69 inside one <type>Frame</type> or global one by using more then ones can be
70 forced too.
71 </p>
73 @param Recorder
74 the new recorder for this supplier
76 void setDispatchRecorder( [in] com::sun::star::frame::XDispatchRecorder Recorder );
78 //-------------------------------------------------------------------------
79 /** provides access on the recorder of this supplier
81 <p>
82 Returned recorder can be used to record dispatches manualy or to get
83 recorded data for further using e.g. saving. He is internaly used too
84 due to the method <member>XDispatchRecorderSupplier::dispatchAndRecord()</member>.
85 </p>
87 @returns
88 the dispatch recorder of this supplier
90 @see XDispatchRecorder
92 com::sun::star::frame::XDispatchRecorder getDispatchRecorder();
94 //-------------------------------------------------------------------------
95 /** dispatch given URL and record it if recording is enabled
97 <p>
98 Parameter <var>Dispatcher</var> is used internaly to make the dispatch.
99 If recording isn't enabled it will be a normal <member>XDispatch::dispatch()</member>
100 call. Otherwise follow algorithm is used:
101 <ul>
102 <li>If <var>Dispatcher</var> doesn't support the interface
103 <type>XRecordableDispatch</type> a normal dispatch() call
104 will be made and depend from the result state of that
105 the request will be recorded. In this case it's possible
106 to record the incoming parameter (<var>URL</var> and
107 <var>Arguments</var>) only. Parameters of internal processes
108 can't be recorded then and will be lost.
109 </li>
110 <li>If <var>Dispatcher</var> support the interface
111 <type>XRecordableDispatch</type> it will be used
112 to dispatch and record all neccessary parameters of
113 the whole process.
114 </li>
115 </ul>
116 </p>
118 @see XRecordableDispatch
120 void dispatchAndRecord(
121 [in] com::sun::star::util::URL URL,
122 [in] sequence<com::sun::star::beans::PropertyValue> Arguments,
123 [in] XDispatch Dispatcher);
126 //=============================================================================
128 }; }; }; };
130 #endif