1*d1766043SAndrew Rist/************************************************************** 2cdf0e10cSrcweir * 3*d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*d1766043SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*d1766043SAndrew Rist * distributed with this work for additional information 6*d1766043SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*d1766043SAndrew Rist * "License"); you may not use this file except in compliance 9*d1766043SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*d1766043SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*d1766043SAndrew Rist * software distributed under the License is distributed on an 15*d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*d1766043SAndrew Rist * KIND, either express or implied. See the License for the 17*d1766043SAndrew Rist * specific language governing permissions and limitations 18*d1766043SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*d1766043SAndrew Rist *************************************************************/ 21*d1766043SAndrew Rist 22*d1766043SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir#ifndef __com_sun_star_awt_XDialogProvider2_idl__ 25cdf0e10cSrcweir#define __com_sun_star_awt_XDialogProvider2_idl__ 26cdf0e10cSrcweir 27cdf0e10cSrcweir#ifndef __com_sun_star_awt_XDialogProvider_idl__ 28cdf0e10cSrcweir#include <com/sun/star/awt/XDialogProvider.idl> 29cdf0e10cSrcweir#endif 30cdf0e10cSrcweir#ifndef __com_sun_star_beans_NamedValue_idl__ 31cdf0e10cSrcweir#include <com/sun/star/beans/NamedValue.idl> 32cdf0e10cSrcweir#endif 33cdf0e10cSrcweir 34cdf0e10cSrcweir 35cdf0e10cSrcweir//============================================================================= 36cdf0e10cSrcweir 37cdf0e10cSrcweirmodule com { module sun { module star { module awt { 38cdf0e10cSrcweir 39cdf0e10cSrcweir//============================================================================= 40cdf0e10cSrcweir 41cdf0e10cSrcweir/** provides dialogs implementing the 42cdf0e10cSrcweir <type scope="com::sun::star::awt">XDialog</type> interface. 43cdf0e10cSrcweir */ 44cdf0e10cSrcweirpublished interface XDialogProvider2 : ::com::sun::star::awt::XDialogProvider { 45cdf0e10cSrcweir 46cdf0e10cSrcweir //------------------------------------------------------------------------- 47cdf0e10cSrcweir 48cdf0e10cSrcweir /** creates a dialog for the given URL accepting an Interface used 49cdf0e10cSrcweir to handle dialog events. 50cdf0e10cSrcweir 51cdf0e10cSrcweir @param URL 52cdf0e10cSrcweir is the URL. 53cdf0e10cSrcweir 54cdf0e10cSrcweir @param xHandler 55cdf0e10cSrcweir is the interface that will be called to handle the Events that 56cdf0e10cSrcweir are generated by the dialog (and all controls placed on it) and 57cdf0e10cSrcweir bound to the handler using a vnd.sun.star.UNO URL specifying a 58cdf0e10cSrcweir handler method to be called. Usually this will be done directly 59cdf0e10cSrcweir by the user. 60cdf0e10cSrcweir 61cdf0e10cSrcweir xHandler can handle events in two different ways: 62cdf0e10cSrcweir 63cdf0e10cSrcweir 1. By supporting the <type scope="com::sun::star::awt">XDialogEventHandler</type> interface. 64cdf0e10cSrcweir This is a generic interface to accept event notifications. 65cdf0e10cSrcweir 66cdf0e10cSrcweir 2. By providing interfaces that directly implement the handler 67cdf0e10cSrcweir methods to be called. The XDialogProvider2 implementation then 68cdf0e10cSrcweir will try to access these events using the 69cdf0e10cSrcweir <type scope="com::sun::star::beans">Introspection</type>Introspection 70cdf0e10cSrcweir service. To make this possible the handler implementation also has to 71cdf0e10cSrcweir support <type scope="com::sun::star::lang">XTypeProvider</type>. 72cdf0e10cSrcweir 73cdf0e10cSrcweir If XDialogEventHandler is supported XDialogEventHandler.callHandlerMethod() 74cdf0e10cSrcweir is always called first to handle the event. Only if the event cannot be 75cdf0e10cSrcweir handled by XDialogEventHandler (callHandlerMethod() then has to return 76cdf0e10cSrcweir false) or if XDialogEventHandler is not supported at all the Introspection 77cdf0e10cSrcweir based access will be used. 78cdf0e10cSrcweir 79cdf0e10cSrcweir The Introspection based access tries to call a method named according to the 80cdf0e10cSrcweir HandlerMethodName specified by a vnd.sun.star.UNO:<HandlerMethodName> URL. 81cdf0e10cSrcweir First a method 82cdf0e10cSrcweir 83cdf0e10cSrcweir void HandlerMethodName( [in] com::sun::star::awt::XDialog xDialog, [in] any aEvent ) 84cdf0e10cSrcweir 85cdf0e10cSrcweir will be searched. The signature is similar to XDialogEventHandler. 86cdf0e10cSrcweir callHandlerMethod except for MethodName itself that isn't needed 87cdf0e10cSrcweir here. For more information about these parameters, see 88cdf0e10cSrcweir <type scope="com::sun::star::awt">XDialogEventHandler</type>. 89cdf0e10cSrcweir 90cdf0e10cSrcweir If this method is found, it will be called, otherwise a method 91cdf0e10cSrcweir 92cdf0e10cSrcweir void HandlerMethodName( void ) 93cdf0e10cSrcweir 94cdf0e10cSrcweir will be searched and called. 95cdf0e10cSrcweir 96cdf0e10cSrcweir @returns 97cdf0e10cSrcweir a dialog implementing the <type scope="com::sun::star::awt">XDialog</type> interface. 98cdf0e10cSrcweir 99cdf0e10cSrcweir @throws com::sun::star::lang::IllegalArgumentException 100cdf0e10cSrcweir if no dialog for the given URL is found or if the URL is invalid 101cdf0e10cSrcweir or xHandler is null. 102cdf0e10cSrcweir 103cdf0e10cSrcweir @see <type scope="com::sun::star::awt">XDialogEventHandler</type> 104cdf0e10cSrcweir 105cdf0e10cSrcweir */ 106cdf0e10cSrcweir XDialog createDialogWithHandler 107cdf0e10cSrcweir ( [in] string URL, [in] com::sun::star::uno::XInterface xHandler ) 108cdf0e10cSrcweir raises ( com::sun::star::lang::IllegalArgumentException ); 109cdf0e10cSrcweir 110cdf0e10cSrcweir /** creates a dialog for the given URL, accepting additional creation parameters 111cdf0e10cSrcweir 112cdf0e10cSrcweir <p>The arguments accepted so far are 113cdf0e10cSrcweir <ul><li><em>ParentWindow</em> - must be a component supporting the <type>XWindowPeer</type> interface, 114cdf0e10cSrcweir or a component supporting the <type>XControl</type> interfac, so an <code>XWindowPeer</code> can be 115cdf0e10cSrcweir obtained from it. The given window will be used as parent window for the to-be-created dialog.</li> 116cdf0e10cSrcweir <li><em>EventHandler</em> - specifies a component handling events in the dialog. See 117cdf0e10cSrcweir <member>createDialogWithHandler</member> for a detailed specification of dialog event handling.</li> 118cdf0e10cSrcweir </ul> 119cdf0e10cSrcweir </p> 120cdf0e10cSrcweir */ 121cdf0e10cSrcweir 122cdf0e10cSrcweir XDialog createDialogWithArguments 123cdf0e10cSrcweir ( [in] string URL, 124cdf0e10cSrcweir [in] sequence< ::com::sun::star::beans::NamedValue > Arguments ) 125cdf0e10cSrcweir raises ( com::sun::star::lang::IllegalArgumentException ); 126cdf0e10cSrcweir}; 127cdf0e10cSrcweir 128cdf0e10cSrcweir//============================================================================= 129cdf0e10cSrcweir 130cdf0e10cSrcweir}; }; }; }; 131cdf0e10cSrcweir 132cdf0e10cSrcweir#endif 133