| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef __com_sun_star_frame_XRecordableDispatch_idl__ |
| #define __com_sun_star_frame_XRecordableDispatch_idl__ |
| |
| #ifndef __com_sun_star_uno_XInterface_idl__ |
| #include <com/sun/star/uno/XInterface.idl> |
| #endif |
| |
| #ifndef __com_sun_star_frame_XDispatchRecorder_idl__ |
| #include <com/sun/star/frame/XDispatchRecorder.idl> |
| #endif |
| |
| #ifndef __com_sun_star_util_URL_idl__ |
| #include <com/sun/star/util/URL.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module frame { |
| |
| //============================================================================= |
| /** extends an existing <type>XDispatch</type> implementation with functionality |
| for dispatch recording |
| |
| <p> |
| This interface can be implemented as an additional one beside an existing |
| <type>XDispatch</type> one to provide record functionality of dispatches. |
| Because it's an additional interface the status events are available there |
| and not at this interface. |
| </p> |
| |
| <p> |
| But normaly this interface mustn't be used directly. |
| If a dispatch object is well known and recording was enabled |
| on a <type>XDispatchRecorderSupplier</type> it's possible to use method |
| <member>XDispatchRecorderSupplier::dispatchAndRecord()</member> of it |
| to make dispatch and recording automatically. The interface XRecordableDispatch |
| is used transparently there. |
| </p> |
| |
| @example |
| <listing> |
| <i>XDispatch</i> xDispatcher = xFrame.queryDispatch(aURL,"",0); |
| <i>XRecordableDispatch</i> xRecordable = (<i>XRecordableDispatch</i>)UnoRuntime.queryInterface( |
| XRecordableDispatch.class, |
| xDispatcher); |
| |
| xDispatcher.addStatusListener(this,aURL); |
| |
| <b>if</b> (xRecordable!=<b>null</b>) |
| xRecordable.dispatchAndRecord(aURL,lArguments,xRecorder); |
| else |
| xDispatcher.dispatch(aURL,lArguments); |
| ... |
| xDispatcher.removeStatusListener(this,aURL); |
| </listing> |
| |
| @see XDispatchRecorderSupplier |
| @see XDispatch |
| |
| @since OpenOffice 1.1.2 |
| */ |
| published interface XRecordableDispatch: com::sun::star::uno::XInterface |
| { |
| //------------------------------------------------------------------------- |
| /** dispatch and record it |
| |
| @param URL |
| full parsed URL which describe the feature which should be dispatched (executed) |
| |
| @param Arguments |
| optional arguments for this request |
| (see <type scope="com::sun::star::document">MediaDescriptor</type> for details) |
| |
| @param Recorder |
| object which can be used to record the request |
| (available on <member>XDispatchRecorderSupplier::getDispatchRecorder()</member>) |
| */ |
| [oneway] void dispatchAndRecord( |
| [in] com::sun::star::util::URL URL, |
| [in] sequence<com::sun::star::beans::PropertyValue> Arguments, |
| [in] XDispatchRecorder Recorder); |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |