/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: XModuleUIConfigurationManager.idl,v $
 *
 *  $Revision: 1.3 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-08 08:28:48 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library 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 for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/

#ifndef __com_sun_star_ui_XModuleUIConfigurationManager_idl__
#define __com_sun_star_ui_XModuleUIConfigurationManager_idl__

#ifndef __com_sun_star_container_XIndexContainer_idl__
#include <com/sun/star/container/XIndexContainer.idl>
#endif

#ifndef __com_sun_star_container_XIndexAccess_idl__
#include <com/sun/star/container/XIndexAccess.idl>
#endif

#ifndef __com_sun_star_container_NoSuchElementException_idl__
#include <com/sun/star/container/NoSuchElementException.idl>
#endif

#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif

#ifndef __com_sun_star_lang_IllegalAccessException_idl__
#include <com/sun/star/lang/IllegalAccessException.idl>
#endif

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 configration 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 changeelements 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.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
            resourcce 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
            resourcce 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
