/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/

#ifndef __com_sun_star_ui_XModuleUIConfigurationManager_idl__
#define __com_sun_star_ui_XModuleUIConfigurationManager_idl__

#include <com/sun/star/container/XIndexContainer.idl>
#include <com/sun/star/container/XIndexAccess.idl>
#include <com/sun/star/container/NoSuchElementException.idl>
#include <com/sun/star/lang/IllegalArgumentException.idl>
#include <com/sun/star/lang/IllegalAccessException.idl>

module com { module sun { module star { module ui {

/** specifies specific functions of a module based user interface
    configuration manager interface.

    <p>
    A module user interface configuration manager supports, unlike a
    document based ui configuration manager, two layers of configuration
    settings data:<br/>
    1. Layer: A module default user interface configuration which
              describe all user interface elements settings that are
              used by OpenOffice. It is not possible to insert, remove
              or change elements settings in this layer through the
              interfaces.</br>
    2. Layer: A module user interface configuration which only contains
              customized user interface elements and user-defined ones.
              All changes on user interface element settings are done on
              this layer. This layer is the same as the document ui
              configuration manager uses.</br>
    </p>

    @since OOo 2.0
*/

interface XModuleUIConfigurationManager : ::com::sun::star::uno::XInterface
{
    /** determine if the settings of a user interface element is part
        of the default layer of the user interface configuration manager.

        @param ResourceURL
            a resource URL which identifies the user interface element. A
            resource URL must meet the following syntax:
            "private:resource/$type/$name. It is only allowed to use ASCII
            characters for type and name.

        @return
            <TRUE/> if settings have been found in the default layer,
            otherwise <FALSE/>.
    */
    boolean isDefaultSettings( [in] string ResourceURL ) raises ( com::sun::star::lang::IllegalArgumentException );

    /** retrieves the settings from the default layer of the user interface
        configuration manager if it has a default layer.

        @param ResourceURL
            a resource URL which identifies the user interface element. A
            resource URL must meet the following syntax:
            "private:resource/$type/$name. It is only allowed to use ASCII
            characters for type and name.

        @return
            <TRUE/> if default settings have been found in the default layer,
            otherwise <FALSE/>.
    */
    ::com::sun::star::container::XIndexAccess getDefaultSettings( [in] string ResourceURL ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException );

};

//=============================================================================

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
