| /************************************************************** | 
 |  *  | 
 |  * 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_awt_XDialogProvider2_idl__ | 
 | #define __com_sun_star_awt_XDialogProvider2_idl__ | 
 |  | 
 | #ifndef __com_sun_star_awt_XDialogProvider_idl__ | 
 | #include <com/sun/star/awt/XDialogProvider.idl> | 
 | #endif | 
 | #ifndef __com_sun_star_beans_NamedValue_idl__ | 
 | #include <com/sun/star/beans/NamedValue.idl> | 
 | #endif | 
 |  | 
 |  | 
 | //============================================================================= | 
 |  | 
 | module com { module sun { module star { module awt { | 
 |  | 
 | //============================================================================= | 
 |  | 
 | /** provides dialogs implementing the | 
 |     <type scope="com::sun::star::awt">XDialog</type> interface. | 
 |  */ | 
 | published interface XDialogProvider2 : ::com::sun::star::awt::XDialogProvider { | 
 |  | 
 |     //------------------------------------------------------------------------- | 
 |  | 
 |     /** creates a dialog for the given URL accepting an Interface used | 
 |         to handle dialog events. | 
 |  | 
 |         @param URL | 
 |             is the URL. | 
 |  | 
 |         @param xHandler | 
 |             is the interface that will be called to handle the Events that | 
 |             are generated by the dialog (and all controls placed on it) and | 
 |             bound to the handler using a vnd.sun.star.UNO URL specifying a | 
 |             handler method to be called. Usually this will be done directly | 
 |             by the user. | 
 |  | 
 |             xHandler can handle events in two different ways: | 
 |  | 
 |             1. By supporting the <type scope="com::sun::star::awt">XDialogEventHandler</type> interface. | 
 |             This is a generic interface to accept event notifications. | 
 |  | 
 |             2. By providing interfaces that directly implement the handler | 
 |             methods to be called. The XDialogProvider2 implementation then | 
 |             will try to access these events using the | 
 |             <type scope="com::sun::star::beans">Introspection</type>Introspection | 
 |             service. To make this possible the handler implementation also has to | 
 |             support <type scope="com::sun::star::lang">XTypeProvider</type>. | 
 |  | 
 |             If XDialogEventHandler is supported XDialogEventHandler.callHandlerMethod() | 
 |             is always called first to handle the event. Only if the event cannot be | 
 |             handled by XDialogEventHandler (callHandlerMethod() then has to return | 
 |             false) or if XDialogEventHandler is not supported at all the Introspection | 
 |             based access will be used. | 
 |  | 
 |             The Introspection based access tries to call a method named according to the | 
 |             HandlerMethodName specified by a vnd.sun.star.UNO:<HandlerMethodName> URL. | 
 |             First a method | 
 |  | 
 |             void HandlerMethodName( [in] com::sun::star::awt::XDialog xDialog, [in] any aEvent ) | 
 |  | 
 |             will be searched. The signature is similar to XDialogEventHandler. | 
 |             callHandlerMethod except for MethodName itself that isn't needed | 
 |             here. For more information about these parameters, see | 
 |             <type scope="com::sun::star::awt">XDialogEventHandler</type>. | 
 |  | 
 |             If this method is found, it will be called, otherwise a method | 
 |  | 
 |             void HandlerMethodName( void ) | 
 |  | 
 |             will be searched and called. | 
 |  | 
 |         @returns | 
 |             a dialog implementing the <type scope="com::sun::star::awt">XDialog</type> interface. | 
 |  | 
 |         @throws com::sun::star::lang::IllegalArgumentException | 
 |             if no dialog for the given URL is found or if the URL is invalid | 
 |             or xHandler is null. | 
 |  | 
 |         @see <type scope="com::sun::star::awt">XDialogEventHandler</type> | 
 |  | 
 |      */ | 
 |     XDialog createDialogWithHandler | 
 |         ( [in] string URL, [in] com::sun::star::uno::XInterface xHandler ) | 
 |             raises ( com::sun::star::lang::IllegalArgumentException ); | 
 |  | 
 |     /** creates a dialog for the given URL, accepting additional creation parameters | 
 |  | 
 |         <p>The arguments accepted so far are | 
 |         <ul><li><em>ParentWindow</em> - must be a component supporting the <type>XWindowPeer</type> interface, | 
 |                 or a component supporting the <type>XControl</type> interfac, so an <code>XWindowPeer</code> can be | 
 |                 obtained from it. The given window will be used as parent window for the to-be-created dialog.</li> | 
 |             <li><em>EventHandler</em> - specifies a component handling events in the dialog. See | 
 |                 <member>createDialogWithHandler</member> for a detailed specification of dialog event handling.</li> | 
 |         </ul> | 
 |         </p> | 
 |     */ | 
 |  | 
 |     XDialog createDialogWithArguments | 
 |         ( [in] string URL, | 
 |           [in] sequence< ::com::sun::star::beans::NamedValue > Arguments ) | 
 |         raises  ( com::sun::star::lang::IllegalArgumentException ); | 
 | }; | 
 |  | 
 | //============================================================================= | 
 |  | 
 | }; }; }; }; | 
 |  | 
 | #endif |