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