1d1766043SAndrew Rist/**************************************************************
2d1766043SAndrew Rist *
3d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5d1766043SAndrew Rist * distributed with this work for additional information
6d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10d1766043SAndrew Rist *
11d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12d1766043SAndrew Rist *
13d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14d1766043SAndrew Rist * software distributed under the License is distributed on an
15d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17d1766043SAndrew Rist * specific language governing permissions and limitations
18d1766043SAndrew Rist * under the License.
19d1766043SAndrew Rist *
20d1766043SAndrew Rist *************************************************************/
21d1766043SAndrew Rist
22d1766043SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir#ifndef __com_sun_star_ui_XUIConfigurationPersistence_idl__
25cdf0e10cSrcweir#define __com_sun_star_ui_XUIConfigurationPersistence_idl__
26cdf0e10cSrcweir
27cdf0e10cSrcweir#ifndef __com_sun_star_embed_XStorage_idl__
28cdf0e10cSrcweir#include <com/sun/star/embed/XStorage.idl>
29cdf0e10cSrcweir#endif
30cdf0e10cSrcweir
31cdf0e10cSrcweirmodule com { module sun { module star { module ui {
32cdf0e10cSrcweir
33cdf0e10cSrcweir/** specifies a persistence interface which supports to load/store user
34cdf0e10cSrcweir    interface configuration data to a storage and to retrieve information
35cdf0e10cSrcweir    about the current state.
36cdf0e10cSrcweir
37*f431c806SJürgen Schmidt    @since OpenOffice 2.0
38cdf0e10cSrcweir*/
39cdf0e10cSrcweir
40cdf0e10cSrcweirpublished interface XUIConfigurationPersistence : ::com::sun::star::uno::XInterface
41cdf0e10cSrcweir{
42cdf0e10cSrcweir    /** reloads the configuration data from the storage and reinitialize
43cdf0e10cSrcweir        the user interface configuration manager instance with this data.
44cdf0e10cSrcweir
45cdf0e10cSrcweir        <p>
46cdf0e10cSrcweir        It is up to the implementation if it defers the first loading process
47cdf0e10cSrcweir        until the first data request using <type>XUIConfigurationManager</type>
48cdf0e10cSrcweir        interface.
49cdf0e10cSrcweir        </p>
50cdf0e10cSrcweir    */
51cdf0e10cSrcweir    void reload() raises ( ::com::sun::star::uno::Exception );
52cdf0e10cSrcweir
53cdf0e10cSrcweir    /** stores the configuration data to the storage provided by
54cdf0e10cSrcweir        <member>setStorage</member> from the storage and initialize the
55cdf0e10cSrcweir        user interface configuration manager instance with the newly
56cdf0e10cSrcweir        data. This call can throw an
57cdf0e10cSrcweir        <type scope="com::sun::star::io">IOException</type> if
58cdf0e10cSrcweir        <member>store</member> cannot store its data into the internal
59cdf0e10cSrcweir        storage.
60cdf0e10cSrcweir    */
61cdf0e10cSrcweir    void store() raises ( ::com::sun::star::uno::Exception );
62cdf0e10cSrcweir
63cdf0e10cSrcweir    /** stores the configuration data to the provided storage, ignoring
64cdf0e10cSrcweir        the previously set storage by <member>setStorage</member>. Can
65cdf0e10cSrcweir        be used to make copy of the current user interface configuration
66cdf0e10cSrcweir        data to another storage. This call will throw an
67cdf0e10cSrcweir        <type scope="com::sun::star::io">IOException</type> if the provided
68cdf0e10cSrcweir        storage is in read-only mode.
69cdf0e10cSrcweir
70cdf0e10cSrcweir        @param Storage
71cdf0e10cSrcweir            all configuration data will be stored to this storage.
72cdf0e10cSrcweir    */
73cdf0e10cSrcweir    void storeToStorage( [in] ::com::sun::star::embed::XStorage Storage ) raises ( ::com::sun::star::uno::Exception );
74cdf0e10cSrcweir
75cdf0e10cSrcweir    /** provides the current modify state of the configuration manager
76cdf0e10cSrcweir        instance.
77cdf0e10cSrcweir
78cdf0e10cSrcweir        @return
79cdf0e10cSrcweir            <TRUE/> if the configuration manager has changed since the
80cdf0e10cSrcweir            last <member>store</member> call. <FALSE/> if the configuration
81cdf0e10cSrcweir            manager has not been changed.
82cdf0e10cSrcweir    */
83cdf0e10cSrcweir    boolean isModified();
84cdf0e10cSrcweir
85cdf0e10cSrcweir    /** provides the current read-only state of the user configuration
86cdf0e10cSrcweir        manager. Storing a user interface configuration to a read-only storage
87cdf0e10cSrcweir        is not possible. A read-only configuration manager instance will also
88cdf0e10cSrcweir        not support any changes to its configuration settings.
89cdf0e10cSrcweir
90cdf0e10cSrcweir        @return
91cdf0e10cSrcweir            <TRUE/> if the configuration manager storage is read-only otherwise
92cdf0e10cSrcweir            <FALSE/>.
93cdf0e10cSrcweir    */
94cdf0e10cSrcweir    boolean isReadOnly();
95cdf0e10cSrcweir};
96cdf0e10cSrcweir
97cdf0e10cSrcweir//=============================================================================
98cdf0e10cSrcweir
99cdf0e10cSrcweir}; }; }; };
100cdf0e10cSrcweir
101cdf0e10cSrcweir#endif
102