/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: Style.idl,v $
 *
 *  $Revision: 1.10 $
 *
 *  last change: $Author: obo $ $Date: 2006/07/14 08:37:12 $
 *
 *  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_style_Style_idl__
#define __com_sun_star_style_Style_idl__

#ifndef __com_sun_star_style_XStyle_idl__
#include <com/sun/star/style/XStyle.idl>
#endif

#ifndef __com_sun_star_beans_XPropertySet_idl__
#include <com/sun/star/beans/XPropertySet.idl>
#endif
#ifndef __com_sun_star_beans_XMultiPropertySet_idl__
#include <com/sun/star/beans/XMultiPropertySet.idl>
#endif
#ifndef __com_sun_star_beans_XMultiPropertyStates_idl__
#include <com/sun/star/beans/XMultiPropertyStates.idl>
#endif
#ifndef __com_sun_star_beans_NamedValue_idl__
#include <com/sun/star/beans/NamedValue.idl>
#endif
#ifndef _com_sun_star_xml_UserDefinedAttributesSupplier_idl_
#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl>
#endif


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

 module com {  module sun {  module star {  module style {

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

/** This service specifies a single style sheet.
 */
published service Style
{
    //-------------------------------------------------------------------------
    /** contains user defined attributes.

        @see    <type scope="com::sun::star::xml">UserDefinedAttributesSupplier</type>
     */
    [optional] service com::sun::star::xml::UserDefinedAttributesSupplier;
    
    //-------------------------------------------------------------------------

    interface com::sun::star::style::XStyle;

        interface com::sun::star::beans::XPropertySet;

        [optional] interface com::sun::star::beans::XMultiPropertySet;

	/* This optional interface is available as an optimisation, allowing users
	   to use 'setAllPropertiesToDefault', for example. */
    //-------------------------------------------------------------------------

    [optional] interface com::sun::star::beans::XMultiPropertyStates;
    
    //-------------------------------------------------------------------------

	/** determines if a style is physically created.

		<p> Built in styles may not be created until they are needed.
		To prevent standard style properties from being exported, it may be
		useful to check if the style is created first.
		</p>
	 */
	[optional, readonly, property] boolean IsPhysical;
	//-------------------------------------------------------------------------

	/** contains the name of the style that is applied to the next paragraph.

		<p> This property is usually available at paragraph styles only. </p>
	 */
    [optional, property] string FollowStyle;
	//-------------------------------------------------------------------------

	/** contains the name of the style as it is displayed in the user interface.

		<p> The names of the styles at the API are language independent. The user interface
		names are localised.</p>
	 */
	[optional, readonly, property] string DisplayName;
	//-------------------------------------------------------------------------

	/** determines if a style is automatically updated, if the properties of an object
		that the style is applied to are changed.

		<p> For example, if the style is applied to a paragraph and the properties of the paragraph
		are changed then the style will be updated accordingly.</p>
	 */
	[optional, property] string IsAutoUpdate;
    //-------------------------------------------------------------------------

    /** defines the context and styles for conditional paragraphs.
        
        <p>This property is only available if the style is a conditional
        paragraph style.</p>

        <p>The sequence consists of pairs where the name part of the pair 
        defines the context where it should be applied and the value part
        is a string naming the style to be used in that context.</p>
        
        <p>Assigning an empty string to the style name will disable
        the conditional style for that context.</p>

        <p>The alowed strings (contexts) for the name part of an entry
        of the sequence are:</p>

        <ul>
            <li>TableHeader</li>
            <li>Table</li>
            <li>Frame</li>
            <li>Section</li>
            <li>Footnote</li>
            <li>Endnote</li>
            <li>Header</li>
            <li>Footer</li>
            <li>OutlineLevel1</li>
            <li>OutlineLevel2</li>
            <li>OutlineLevel3</li>
            <li>OutlineLevel4</li>
            <li>OutlineLevel5</li>
            <li>OutlineLevel6</li>
            <li>OutlineLevel7</li>
            <li>OutlineLevel8</li>
            <li>OutlineLevel9</li>
            <li>OutlineLevel10</li>
            <li>NumberingLevel1</li>
            <li>NumberingLevel2</li>
            <li>NumberingLevel3</li>
            <li>NumberingLevel4</li>
            <li>NumberingLevel5</li>
            <li>NumberingLevel6</li>
            <li>NumberingLevel7</li>
            <li>NumberingLevel8</li>
            <li>NumberingLevel9</li>
            <li>NumberingLevel10</li>
        </ul>


        @since  OOo 2.0.1.
     */
    [optional, property] sequence< com::sun::star::beans::NamedValue > ParaStyleConditions;

};

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

}; }; }; };
#endif
