1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_frame_FrameLoader_idl__
24#define __com_sun_star_frame_FrameLoader_idl__
25
26#ifndef __com_sun_star_frame_XFrameLoader_idl__
27#include <com/sun/star/frame/XFrameLoader.idl>
28#endif
29
30#ifndef __com_sun_star_lang_XInitialization_idl__
31#include <com/sun/star/lang/XInitialization.idl>
32#endif
33
34#ifndef __com_sun_star_container_XNamed_idl__
35#include <com/sun/star/container/XNamed.idl>
36#endif
37
38//=============================================================================
39
40 module com {  module sun {  module star {  module frame {
41
42//=============================================================================
43/** derivations of this abstract service are used to load components
44    into <type>Frame</type>s of the environment
45
46    <p>
47    Concrete implementations of this service register, for example,
48	for file name extensions or MIME types to load appropriate
49    components. The components loaded are at least <type>Controller</type>.
50    Instead of <type>SynchronousFrameLoader</type> this one use asynchronous
51    processes to load the component.
52    </p>
53
54    @see SynchronousFrameLoader
55 */
56published service FrameLoader
57{
58	//-------------------------------------------------------------------------
59    /** support asynchronous loading of the component
60     */
61    interface XFrameLoader;
62
63	//-------------------------------------------------------------------------
64	/**	support initialization of loader with its own configuration!
65
66        <p>
67        Concrete implementations should use it to get her own configuration data
68        directly after creation by the <type>FrameLoaderFactory</type>.
69        Otherwise they must use normal configuration api to do so.
70		</p>
71	 */
72	[optional] interface com::sun::star::lang::XInitialization;
73
74	//-------------------------------------------------------------------------
75    /** provides access to the internal name of this frame loader
76
77        <p>
78        The internal name is a part of his configuration and will be passed by
79        the <type>FrameLoaderFactory</type> after creation
80        if optional interface <type scope="com::sun::star::lang">XInitialization</type>
81        is supported. Value of function <member scope="com::sun::star::container">XNamed::getName()</member>
82	can be used on service <type>FrameLoaderFactory</type> to get further informations about this loader.
83        Setting of this name by calling <member scope="com::sun::star::container">XNamed::setName()</member>
84	must be forwarded to same factory service. He should decide, if it's allowed or not.
85        The reason: prevent code against name ambigities.
86        </p>
87     */
88     [optional] interface com::sun::star::container::XNamed;
89};
90
91//=============================================================================
92
93}; }; }; };
94
95#endif
96