1*d1766043SAndrew Rist/**************************************************************
2*d1766043SAndrew Rist *
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
10*d1766043SAndrew Rist *
11*d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*d1766043SAndrew Rist *
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.
19*d1766043SAndrew Rist *
20*d1766043SAndrew Rist *************************************************************/
21*d1766043SAndrew Rist
22*d1766043SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir#ifndef __com_sun_star_awt_XContainerWindowProvider_idl__
25cdf0e10cSrcweir#define __com_sun_star_awt_XContainerWindowProvider_idl__
26cdf0e10cSrcweir
27cdf0e10cSrcweir#ifndef __com_sun_star_awt_XWindow_idl__
28cdf0e10cSrcweir#include <com/sun/star/awt/XWindow.idl>
29cdf0e10cSrcweir#endif
30cdf0e10cSrcweir#ifndef __com_sun_star_awt_XWindowPeer_idl__
31cdf0e10cSrcweir#include <com/sun/star/awt/XWindowPeer.idl>
32cdf0e10cSrcweir#endif
33cdf0e10cSrcweir#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
34cdf0e10cSrcweir#include <com/sun/star/lang/IllegalArgumentException.idl>
35cdf0e10cSrcweir#endif
36cdf0e10cSrcweir
37cdf0e10cSrcweir//=============================================================================
38cdf0e10cSrcweir
39cdf0e10cSrcweirmodule com { module sun { module star { module awt {
40cdf0e10cSrcweir
41cdf0e10cSrcweir//=============================================================================
42cdf0e10cSrcweir
43cdf0e10cSrcweir/** provides container windows implementing the
44cdf0e10cSrcweir    <type scope="com::sun::star::awt">XWindow</type> interface.
45cdf0e10cSrcweir */
46cdf0e10cSrcweirpublished interface XContainerWindowProvider : ::com::sun::star::uno::XInterface {
47cdf0e10cSrcweir
48cdf0e10cSrcweir    //-------------------------------------------------------------------------
49cdf0e10cSrcweir
50cdf0e10cSrcweir    /** creates a window for the given URL
51cdf0e10cSrcweir
52cdf0e10cSrcweir        @param URL
53cdf0e10cSrcweir            is the URL.
54cdf0e10cSrcweir
55cdf0e10cSrcweir        @param WindowType
56cdf0e10cSrcweir            Type of Window to be created,
57cdf0e10cSrcweir            for future use, not supported yet
58cdf0e10cSrcweir
59cdf0e10cSrcweir        @param xParent
60cdf0e10cSrcweir            a valid XWindowPeer reference which is used as a parent.
61cdf0e10cSrcweir            This parameter must not be null.
62cdf0e10cSrcweir
63cdf0e10cSrcweir        @param xHandler
64cdf0e10cSrcweir            is the interface that will be called to handle the Events that
65cdf0e10cSrcweir            are generated by the window (and all controls placed on it) and
66cdf0e10cSrcweir            bound to the handler using a vnd.sun.star.UNO URL specifying a
67cdf0e10cSrcweir            handler method to be called. Usually this will be done directly
68cdf0e10cSrcweir            by the user.
69cdf0e10cSrcweir
70cdf0e10cSrcweir            xHandler can handle events in two different ways:
71cdf0e10cSrcweir
72cdf0e10cSrcweir            1. By supporting the <type scope="com::sun::star::awt">XContainerWindowEventHandler</type>
73cdf0e10cSrcweir            interface. This is a generic interface to accept event notifications.
74cdf0e10cSrcweir
75cdf0e10cSrcweir            2. By providing interfaces that directly implement the handler
76cdf0e10cSrcweir            methods to be called. The XContainerWindowProvider implementation then
77cdf0e10cSrcweir            will try to access these events using the
78cdf0e10cSrcweir            <type scope="com::sun::star::beans">Introspection</type>Introspection
79cdf0e10cSrcweir            service. To make this possible the handler implementation also has to
80cdf0e10cSrcweir            support <type scope="com::sun::star::lang">XTypeProvider</type>.
81cdf0e10cSrcweir
82cdf0e10cSrcweir            If XContainerWindowEventHandler is supported XContainerWindowEventHandler.callHandlerMethod()
83cdf0e10cSrcweir            is always called first to handle the event. Only if the event cannot be
84cdf0e10cSrcweir            handled by XContainerWindowEventHandler (callHandlerMethod() then has to return
85cdf0e10cSrcweir            false) or if XContainerWindowEventHandler is not supported at all the Introspection
86cdf0e10cSrcweir            based access will be used.
87cdf0e10cSrcweir
88cdf0e10cSrcweir            The Introspection based access tries to call a method named according to the
89cdf0e10cSrcweir            HandlerMethodName specified by a vnd.sun.star.UNO:<HandlerMethodName> URL.
90cdf0e10cSrcweir            First a method
91cdf0e10cSrcweir
92cdf0e10cSrcweir            void HandlerMethodName( [in] com::sun::star::awt::XWindow xWindow, [in] any aEvent )
93cdf0e10cSrcweir
94cdf0e10cSrcweir            will be searched. The signature is similar to XContainerWindowEventHandler.
95cdf0e10cSrcweir            callHandlerMethod except for MethodName itself that isn't needed
96cdf0e10cSrcweir            here. For more information about these parameters, see
97cdf0e10cSrcweir            <type scope="com::sun::star::awt">XContainerWindowEventHandler</type>.
98cdf0e10cSrcweir
99cdf0e10cSrcweir            If this method is found, it will be called, otherwise a method
100cdf0e10cSrcweir
101cdf0e10cSrcweir            void HandlerMethodName( void )
102cdf0e10cSrcweir
103cdf0e10cSrcweir            will be searched and called.
104cdf0e10cSrcweir
105cdf0e10cSrcweir        @returns
106cdf0e10cSrcweir            a window implementing the <type scope="com::sun::star::awt">XWindow</type> interface.
107cdf0e10cSrcweir
108cdf0e10cSrcweir        @throws com::sun::star::lang::IllegalArgumentException
109cdf0e10cSrcweir            if no window for the given URL is found or if the URL is invalid
110cdf0e10cSrcweir            or xParent is null.
111cdf0e10cSrcweir
112cdf0e10cSrcweir        @see <type scope="com::sun::star::awt">XContainerWindowEventHandler</type>
113cdf0e10cSrcweir
114cdf0e10cSrcweir     */
115cdf0e10cSrcweir    com::sun::star::awt::XWindow createContainerWindow
116cdf0e10cSrcweir        ( [in] string URL, [in] string WindowType,
117cdf0e10cSrcweir          [in] com::sun::star::awt::XWindowPeer xParent,
118cdf0e10cSrcweir          [in] com::sun::star::uno::XInterface xHandler )
119cdf0e10cSrcweir            raises ( com::sun::star::lang::IllegalArgumentException );
120cdf0e10cSrcweir};
121cdf0e10cSrcweir
122cdf0e10cSrcweir//=============================================================================
123cdf0e10cSrcweir
124cdf0e10cSrcweir}; }; }; };
125cdf0e10cSrcweir
126cdf0e10cSrcweir#endif
127