/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project .
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file , You can obtain one at http : //mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice :
*
* 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 .
*/
module com { module sun { module star { module frame {
/** serves state information of objects which can be connected to
controls ( e . g . toolbox controls ) .
< p >
Each state change is to be broadcasted to all registered
status listeners . The first notification should be performed
synchronously from XDispatch : : addStatusListener ( ) ;
if not , controls may flicker . State listener must be aware of this
synchronous notification .
< / p >
< p >
The state consists of enabled / disabled and a short descriptive text
of the function ( e . g . " undo insert character " ) . It is to be broadcasted
whenever this state changes or the control should re - get the value
for the URL it is connected to . Additionally , a context - switch - event
is to be broadcasted whenever the object may be out of scope ,
to force the state listener to requery the XDispatch .
< / p >
@ see Frame
@ see FeatureStateEvent
*/
published interface XDispatch: com::sun::star::uno::XInterface
{
/** dispatches (executes) a URL
< p >
It is only allowed to dispatch URLs for which this XDispatch
was explicitly queried . Additional arguments ( " ' # . . . " or " ? . . . " ) are allowed .
< / p >
@ param URL
fully parsed URL describing the feature which should be dispatched ( = executed )
@ param Arguments
optional arguments for this request
( see com : : sun : : star : : document : : MediaDescriptor )
They depend on the real implementation of the dispatch object .
Controlling synchronous or asynchronous mode happens via
readonly boolean Flag SynchronMode
< p >
By default , and absent any arguments , " SynchronMode " is
considered ` FALSE ` and the execution is performed
asynchronously ( i . e . dispatch ( ) returns immediately , and
the action is performed in the background ) . But when set
to ` TRUE ` , dispatch ( ) processes the request synchronously
- this call will block until it has finished .
< / p >
< i > some code for a click - handler ( Java ) < / i >
@ code { . java }
void myOnClick ( String sURL , String sTargetFrame ,
com . sun . star . beans . PropertyValue [ ] lArguments )
{
com . sun . star . util . URL [ ] aURL = new com . sun . star . util . URL [ 1 ] ;
aURL [ 0 ] = new com . sun . star . util . URL ( ) ;
aURL [ 0 ] . Complete = sURL ;
com . sun . star . util . XURLTransformer xParser =
( com . sun . star . util . XURLTransformer ) UnoRuntime . queryInterface (
com . sun . star . util . XURLTransformer . class ,
mxServiceManager . createInstance ( " com . sun . star . util . URLTransformer " ) ) ;
xParser . parseStrict ( aURL ) ;
com . sun . star . frame . XDispatch xDispatcher =
mxFrame . queryDispatch ( aURL [ 0 ] , sTargetFrame , com . sun . star . frame . FrameSearchFlag . GLOBAL ) ;
if ( xDispatcher ! = null )
xDispatcher . dispatch ( aURL [ 0 ] , lArguments ) ;
}
@ endcode
*/
void dispatch(
[in] com::sun::star::util::URL URL,
[in] sequence<com::sun::star::beans::PropertyValue> Arguments);
/** registers a listener of a control for a specific URL
at this object to receive status events .
< p >
It is only allowed to register URLs for which this XDispatch
was explicitly queried . Additional arguments ( " # . . . " or " ? . . . " ) will be ignored .
< / p >
Note : Notifications can ' t be guaranteed ! This will be a part of interface XNotifyingDispatch .
@ param Control
listener that wishes to be informed
@ param URL
the URL ( without additional arguments ) the listener wishes to be registered for .
A listener can be registered for more than one URL at the same time .
@ see XStatusListener
@ see XDispatch : : removeStatusListener ( )
*/
void addStatusListener(
[in] XStatusListener Control,
[in] com::sun::star::util::URL URL);
/** unregisters a listener from a control.
@ param Control
listener that wishes to be unregistered
@ param URL
URL the listener was registered for .
Additional arguments ( " # . . . " or " ? . . . " ) will be ignored .
@ see XStatusListener
@ see XDispatch : : addStatusListener ( )
*/
void removeStatusListener(
[in] XStatusListener Control,
[in] com::sun::star::util::URL URL);
};
}; }; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 in Prozent C=94 H=97 G=95
¤ Dauer der Verarbeitung: 0.8 Sekunden
¤
*© Formatika GbR, Deutschland