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
24#ifndef __com_sun_star_ui_UIElementSettings_idl__
25#define __com_sun_star_ui_UIElementSettings_idl__
26
27#ifndef __com_sun_star_container_XIndexAccess_idl__
28#include <com/sun/star/container/XIndexAccess.idl>
29#endif
30
31#ifndef __com_sun_star_lang_XSingleComponentFactory_idl__
32#include <com/sun/star/lang/XSingleComponentFactory.idl>
33#endif
34
35//=============================================================================
36
37module com {  module sun {  module star {  module ui {
38
39//=============================================================================
40
41/**
42    describes the internal structure of a configurable user interface element.
43
44    <p>
45    No assumption is made about any graphical representation:
46    You could have a menu or a toolbar working with the same UIElementSettings
47    although limitations based on the real user interface element may be visible.
48    </p>
49
50    @since OOo 2.0
51*/
52service UIElementSettings
53{
54    /** provides access to the structure of the user interface element.
55
56        <p>
57        The container contains the items of the user interface element. Every
58        item is stored as a sequence of <type scope="com::sun::star::beans">PropertyValue</type>.
59        The properties insides the sequence are defined by the service <type scope="com::sun::star::ui">ItemDescriptor</type>.
60        It depends on the function which provides these service if the container is shareable read-only or exclusive writeable.
61
62        @see com::sun::star::ui::ItemDescriptor
63        @see com::sun::star::ui::ItemType
64        @see com::sun::star::ui::ItemStyle
65        </p>
66    */
67    interface ::com::sun::star::container::XIndexAccess;
68
69
70    /** provides access to an optional factory interface to create sub container.
71
72        <p>
73        The factory should be used to create sub container within this user interface element settings. This interface is only
74        available if the container is exclusive writable.
75        </p>
76    */
77    [optional] interface ::com::sun::star::lang::XSingleComponentFactory;
78
79    /** determine an optional user interface name of the user interface element.
80
81        <p>
82        A toolbar can show a its user interface name on the window title, when it is in floating mode.
83        </p>
84    */
85    [optional, property] string UIName;
86};
87
88}; }; }; };
89
90#endif
91