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#ifndef __com_sun_star_frame_XUIControllerFactory_idl__
23#define __com_sun_star_frame_XUIControllerFactory_idl__
24
25#include <com/sun/star/lang/XMultiComponentFactory.idl>
26#include <com/sun/star/frame/XUIControllerRegistration.idl>
27
28module com { module sun { module star { module frame {
29
30/** a factory to create User Interface controllers.
31
32    <p>
33    A user interface controller can be registered for a command URL. A certain user
34    interface controller will be created when a user interface element contains a
35    registered command URL.
36
37    @see PopupMenuControllerFactory
38    @see StatusbarControllerFactory
39    @see ToolbarControllerFactory
40    </p>
41
42    @since OpenOffice 4.0
43 */
44interface XUIControllerFactory
45{
46    /** this interface provides functions to create new instances of a registered UI controller.
47
48        <p>
49        Use <member scope="com::sun::star::lang">XMultiComponentFactory::createInstanceWithArgumentsAndContext()</member> to create
50        a new UI controller instance. Use the CommandURL as the service specifier.
51
52        This call supports the following arguments provided as <type scope="com::sun::star::beans">PropertyValue</type>:
53        <ul>
54            <li>
55                <b>Frame</b><br>specifies the <type scope="com::sun::star::frame">XFrame</type>
56                instance to which the UI controller belongs to. This property must be provided to
57                the UI controller, otherwise it cannot dispatch its internal commands.
58             </li>
59            <li>
60                <b>ModuleIdentifier</b><br>optional string that specifies in which module context the UI
61                controller should be created.</br>The module identifier can be retrieved using the
62                <type>ModuleManager</type>.
63            </li>
64        </ul>
65        </p>
66     */
67    interface com::sun::star::lang::XMultiComponentFactory;
68
69    /** provides functions to query for, register and deregister a popup menu controller.
70     */
71    interface XUIControllerRegistration;
72};
73
74}; }; }; };
75
76#endif
77