xref: /trunk/main/offapi/com/sun/star/awt/XDialogProvider2.idl (revision ffd38472365e95f6a578737bc9a5eb0fac624a86)
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