/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */
#ifndef __com_sun_star_text_TextSection_idl__
#define __com_sun_star_text_TextSection_idl__

#include <com/sun/star/text/TextContent.idl>
#include <com/sun/star/text/XTextSection.idl>
#include <com/sun/star/container/XNamed.idl>
#include <com/sun/star/beans/XPropertySet.idl>
#include <com/sun/star/beans/XPropertyState.idl>
#include <com/sun/star/text/SectionFileLink.idl>
#include <com/sun/star/style/GraphicLocation.idl>
#include <com/sun/star/text/XTextColumns.idl>
#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl>
#include <com/sun/star/graphic/XGraphic.idl>

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

/** A TextSection is a range of complete paragraphs within a text.

    <p>The content of the section may be the content of a link into another
    document, a link from the same document, or the result of a DDE
    operation.

    <p>TextSection instances can be linked from and to other
    texts.

*/
published service TextSection
{
    service com::sun::star::text::TextContent;

    [optional] service com::sun::star::xml::UserDefinedAttributesSupplier;

    interface com::sun::star::text::XTextSection;
    interface com::sun::star::container::XNamed;
    interface com::sun::star::beans::XPropertySet;
    interface com::sun::star::beans::XPropertyState;

    /**  This property contains a conditional expression.

    <p>If the result of the conditional expression is `TRUE` and the property
    TextSection::IsVisible is `FALSE`, then the section is hidden.</p>
    */
    [property] string Condition;

    /** If this property is `FALSE`, the text section is hidden.
    */
    [property] boolean IsVisible;

    /** If this property is `TRUE`, the text section is protected
        and cannot be modified from the user interface.
    */
    [property] boolean IsProtected;

    /** If this property is set, then the content of the section is read
        from the specified document.

    */
    [property] com::sun::star::text::SectionFileLink FileLink;

    /**  specifies the source of a file link in the document that is
    specified in TextSection::FileLink.

    <p>The source may be a text section or a bookmark.
    If TextSection::FileLink is empty, then the
    current document is searched for the source. If this property
    is empty and TextSection::FileLink is set,
    then the complete document content is linked into this section.</p>
    */
    [property] string LinkRegion;

    /**  specifies the type of the command string for a DDE operation.
     <p>The type can be the name of the application that provides a DDE source.</p>
    */
    [property] string DDECommandType;

    /**  specifies the source file name of the command string for a DDE operation.
    */
    [property] string DDECommandFile;

    /**  specifies the source element of the command string for a DDE operation.
     <p>The element can be i.e. a name of a cell in a sheet or a bookmark.</p>
    */
    [property] string DDECommandElement;

    /** contains the URL for the background graphic.

        @deprecated as of LibreOffice 6.1 - use BackGraphic instead

        Note the new behaviour since it this was deprecated:
        This property can only be set and only external URLs are
        supported (no more vnd.sun.star.GraphicObject scheme). When an
        URL is set, then it will load the graphic and set the BackGraphic
        property.
    */
    [property] string BackGraphicURL;

    /**  contains the name of the file filter for the background graphic.
    */
    [property] string BackGraphicFilter;

    /** determines the position of the background graphic.

        @see GraphicLocation
    */
    [property] com::sun::star::style::GraphicLocation BackGraphicLocation;
    /** determines whether footnotes inside the section are displayed at the end of the
     section text.
    */
    [property] boolean FootnoteIsCollectAtTextEnd;
    /** determines whether the footnotes numbering restarts within the section.
     This is only valid if <code>FootnoteIsRestartNumbering</code> is set.
    */
    [property] boolean FootnoteIsRestartNumbering;
    /** determines at which number the footnote numbering inside of the section starts.
     This is only valid if <code>FootnoteIsRestartNumbering</code> is set.
    */
    [property] short FootnoteRestartNumberingAt;
    /** determines whether the footnotes within the section use an own numbering format.
     This is only valid if <code>FootnoteIsRestartNumbering</code> is set.
    */
    [property] boolean FootnoteIsOwnNumbering;
    /** determines the numbering type of the footnote numbering as a value of
     com::sun::star::style::NumberingType.
     This is only valid if <code>FootnoteIsOwnNumbering</code> is set.
    */
    [property] short FootnoteNumberingType;
    /** determines the prefix that is display before the footnote number.
     This is only valid if <code>FootnoteIsOwnNumbering</code> is set.
    */
    [property] string FootnoteNumberingPrefix;
    /** determines the suffix that is display after of the footnote number.
     This is only valid if <code>FootnoteIsOwnNumbering</code> is set.
    */
    [property] string FootnoteNumberingSuffix;
    /** determines whether endnotes inside the section are displayed at the end of the
     section text.
    */
    [property] boolean EndnoteIsCollectAtTextEnd;
    /** determines whether the endnotes numbering restarts within the section.
     This is only valid if <code>EndnoteIsRestartNumbering</code> is set.
    */
    [property] boolean EndnoteIsRestartNumbering;
    /** determines at which number the endnote numbering inside of the section starts.
     This is only valid if <code>EndnoteIsRestartNumbering</code> is set.
    */
    [property] short EndnoteRestartNumberingAt;
    /** determines whether the endnotes within the section use an own numbering format.
     This is only valid if <code>EndnoteIsRestartNumbering</code> is set.
    */
    [property] boolean EndnoteIsOwnNumbering;
    /** determines the numbering type of the endnote numbering as a value of
     com::sun::star::style::NumberingType.
     This is only valid if <code>EndoteIsOwnNumbering</code> is set.
    */
    [property] short EndnoteNumberingType;
    /** determines the prefix that is display before the endnote number.
     This is only valid if <code>EndnoteIsOwnNumbering</code> is set.
    */
    [property] string EndnoteNumberingPrefix;
    /** determines the suffix that is display after the endnote number.
     This is only valid if <code>EndnoteIsOwnNumbering</code> is set.
    */
    [property] string EndnoteNumberingSuffix;
    /** determines if a DDE link is updated automatically.
    */
    [property] boolean IsAutomaticUpdate;
    /** allows columns to be set into the text section
    */
    [property] com::sun::star::text::XTextColumns TextColumns;
    /** determines the left margin of the section
     */
    [optional, property] long SectionLeftMargin;
    /** determines the left margin of the section
     */
    [optional, property] long SectionRightMargin;

    /** contains the graphic of the background.

        @since LibreOffice 6.1
     */
    [optional, property] com::sun::star::graphic::XGraphic BackGraphic;
};


}; }; }; };

#endif

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