/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#ifndef __com_sun_star_text_NumberingLevel_idl__
#define __com_sun_star_text_NumberingLevel_idl__

#ifndef __com_sun_star_util_Color_idl__
#include <com/sun/star/util/Color.idl>
#endif

#ifndef __com_sun_star_awt_Size_idl__
#include <com/sun/star/awt/Size.idl>
#endif

#ifndef __com_sun_star_awt_FontDescriptor_idl__
#include <com/sun/star/awt/FontDescriptor.idl>
#endif

#ifndef __com_sun_star_awt_XBitmap_idl__
#include <com/sun/star/awt/XBitmap.idl>
#endif

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

 module com {  module sun {  module star {  module text {

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

/** provides access to a numbering level as part of the Numbering Rules.
 */
published service NumberingLevel
{
	//-------------------------------------------------------------------------

	/** adjusts the numbering (HoriOrientation_LEFT/RIGHT/CENTER)

		<p>
		</p>
	 */
	[property] short Adjust;

	//-------------------------------------------------------------------------

	/** number of upper levels that are included in the current numbering symbol.
	 */
	[optional, property] short ParentNumbering;

	//-------------------------------------------------------------------------

	/** the prefix of the numbering symbol.
	 */
	[property] string Prefix;

	//-------------------------------------------------------------------------

	/** the suffix of the numbering symbol.
	 */
	[property] string Suffix;

	//-------------------------------------------------------------------------

	/** Name of the character style that is used for the numbering symbol.
	 */
	[optional, property] string CharStyleName;

	//-------------------------------------------------------------------------

	/** the ID of the symbol in the given font. This is only valid if the
		numbering type is <const scope="com::sun::star::style">NumberingType::CHAR_SPECIAL</const>.
	  	@deprecated
	 */
	[optional, property] short BulletId;
	//-------------------------------------------------------------------------

    /** contains the symbol in the given font. This is only valid if the
		numbering type is <const scope="com::sun::star::style">NumberingType::CHAR_SPECIAL</const>.
	 */
	[property] string BulletChar;
	//-------------------------------------------------------------------------

	/** the name of the font for the symbol. This is only valid if the
		numbering type is <const scope="com::sun::star::style">NumberingType::CHAR_SPECIAL</const>.
	 */
	[property] string BulletFontName;

	//-------------------------------------------------------------------------

    /** the font used to paint the bullet.
     */
    [optional, property] com::sun::star::awt::FontDescriptor BulletFont;

    //-------------------------------------------------------------------------

	/** the URL of the graphic file that is used as the numbering symbol.

		<p> This is only valid if the numbering type is
		<const scope="com::sun::star::style">NumberingType::BITMAP</const>.</p>
	 */
	[property] string GraphicURL;

	//-------------------------------------------------------------------------

    /** the bitmap containing the bullet.
     */
    [optional, property] com::sun::star::awt::XBitmap GraphicBitmap;

    //-------------------------------------------------------------------------

    /** size of the graphic that is used as bullet.
     */
    [optional, property] com::sun::star::awt::Size    GraphicSize;
    //-------------------------------------------------------------------------

    //-------------------------------------------------------------------------

	/** contains the vertical orientation of a graphic.

		<p> It is set using com::sun::star::text::VertOrientation.</p>
	 */
	[optional, property] short VertOrient;
	//-------------------------------------------------------------------------

	/** specifies the start value for the numbering.

		<p>This property is only valid if the numbering type is not
		<const scope="com::sun::star::style">NumberingType::BITMAP</const> or
		<const scope="com::sun::star::style">NumberingType::CHAR_SPECIAL</const>.</p>
	 */
	[optional, property] short StartWith;

	//-------------------------------------------------------------------------

	/** specifies the left margin of the numbering
	 */
	[property] long LeftMargin;

	//-------------------------------------------------------------------------

	/** specifies the distance between the numbering symbol and the text of
		the paragraph.
	 */
	[optional, property] long SymbolTextDistance;

	//-------------------------------------------------------------------------

	/** specifies the offset between the beginning of the first line and
		the beginning of the following lines of the paragraph.
	 */
	[property] long FirstLineOffset;

	//-------------------------------------------------------------------------

	/** specifies the type of numbering.
	 */
	[property] short NumberingType;

	//-------------------------------------------------------------------------

	/** contains the name of the paragraph style that is interpreted as the
		header of this level. It is only contained in the levels of
		chapter numbering rules.
	 */
	[property] string HeadingStyleName;

	/** contains the color for the symbol. This is only valid if the
		numbering type is <const scope="com::sun::star::style">NumberingType::CHAR_SPECIAL</const>.
	*/
	[optional, property] com::sun::star::util::Color BulletColor;

	/** contains the size of the symbol relative to the high of the paragraph. This is only valid if the
		numbering type is <const scope="com::sun::star::style">NumberingType::CHAR_SPECIAL</const>.
	*/
	[optional, property] short BulletRelSize;

        /** position and space mode

                <p>
                Specifies the position and space mode of the numbering level.
                For valid values see com::sun::star::text::PositionAndSpaceMode.
                If it equals LABEL_WIDTH_AND_POSITION, properties Adjust,
                LeftMargin, SymbolTextDistance and FirstLineOffset are used.
                If it equals LABEL_ALIGNMENT, properties Adjust, LabelFollowedBy,
                ListtabStopPosition, FirstLineIndent, IndentAt are used.
                </p>

                @since OOo 3.0
        */
        [optional, property] short PositionAndSpaceMode;

        /** character following the list label

                <p>
                Specifies the character following the list label.
                For valid values see com::sun::star::text::LabelFollow.
                Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT.
                </p>

                @since OOo 3.0
        */
        [optional, property] short LabelFollowedBy;

        /** list tab position

                <p>
                Specifies the position of the list tab stop - only non-negative
                values are allowed.
                Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT
                and LabelFollowedBy equal LABELFOLLOW_LISTTAB
                </p>

                @since OOo 3.0
        */
        [optional, property] long ListtabStopPosition;

        /** additional line indent for the first text line

                <p>
                Specifies the first line indent.
                Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT.
                </p>

                @since OOo 3.0
        */
        [optional, property] long FirstLineIndent;

        /** indentation of the text lines

                <p>
                Specifies the indent of the text lines
                Only of relevance, if PositionAndSpaceMode equals LABEL_ALIGNMENT.
                </p>

                @since OOo 3.0
        */
        [optional, property] long IndentAt;
};

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

}; }; }; };

#endif