1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_ui_ConfigurableUIElement_idl__
29#define __com_sun_star_ui_ConfigurableUIElement_idl__
30
31#ifndef __com_sun_star_ui_UIElement_idl__
32#include <com/sun/star/ui/UIElement.idl>
33#endif
34
35#ifndef __com_sun_star_ui_XUIElementSettings_idl__
36#include <com/sun/star/ui/XUIElementSettings.idl>
37#endif
38
39#ifndef __com_sun_star_beans_XPropertySet_idl__
40#include <com/sun/star/beans/XPropertySet.idl>
41#endif
42
43#ifndef __com_sun_star_ui_UIElementType_idl__
44#include <com/sun/star/ui/UIElementType.idl>
45#endif
46
47#ifndef __com_sun_star_ui_XUIConfigurationManager_idl__
48#include <com/sun/star/ui/XUIConfigurationManager.idl>
49#endif
50
51#ifndef __com_sun_star_frame_XFrame_idl__
52#include <com/sun/star/frame/XFrame.idl>
53#endif
54
55#ifndef __com_sun_star_lang_XInitialization_idl__
56#include <com/sun/star/lang/XInitialization.idl>
57#endif
58
59//=============================================================================
60
61module com { module sun { module star { module ui {
62
63//=============================================================================
64
65/** specifies a configurable user interface element that supports persistence.
66
67    <p>
68    Configurable user interface elements are:
69    <ul>
70        <li>menubar</li>
71        <li>popupmenu<li>
72        <li>toolbar</li>
73        <li>statusbar</li>
74    </ul>
75    </p>
76
77    @since OOo 2.0
78*/
79
80service ConfigurableUIElement
81{
82    /** provides properties and functions to initialize and identify a user
83        interface element.
84
85        <p>
86        A configurable user interface element must be initialized using
87        <member scope=com::sun::star::lang>XInitialization::initialize</member> before
88        it can be used. The following properties must be provided:
89        <ul>
90            <li><b>ResourceURL</b><br>specifies the user interface name.</li>
91            <li><b>Frame</b><br>specifies to which frame instance the user interface belongs to.</li>
92            <li><b>ConfigurationSource</b><br>specifies to which configuration manager a user interface
93            element instance is bound to.</li>
94        </ul>
95        </p>
96
97        A user interface element factory creates and initializes every user interface element
98        correctly.
99
100        @see com::sun::star::ui::UIElementFactory
101    */
102    service UIElement;
103
104    /** provides functions to retrieve and change the user interface element structure data and to
105        update its visible representation.
106    */
107    interface com::sun::star::ui::XUIElementSettings;
108
109    /** specifies if the user interface element stores changes of its structure to its creator
110        source defined by the property <member>ConfigurationSource</member>. */
111    [property] boolean Persistent;
112
113    /** specifies the configuration source of this user interface element.
114
115        <p>
116        If the property <member>Persistent</member> is <TRUE/> changes on the structure of
117        the user interface element are written back to configuration source. When this property is
118        changed, afterwards <member>XUIElementSettings::updateSettings</member>  must be called so
119        the user interface element tries to retrieve its settings from the new user interface
120        configuration manager.
121        </p>
122    */
123    [property] com::sun::star::ui::XUIConfigurationManager ConfigurationSource;
124};
125
126}; }; }; };
127
128#endif
129