/* -*- 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_drawing_TextProperties_idl__
#define __com_sun_star_drawing_TextProperties_idl__

#include <com/sun/star/container/XIndexReplace.idl>

#include <com/sun/star/style/CharacterProperties.idl>
#include <com/sun/star/style/CharacterPropertiesAsian.idl>
#include <com/sun/star/style/CharacterPropertiesComplex.idl>

#include <com/sun/star/style/ParagraphProperties.idl>
#include <com/sun/star/style/ParagraphPropertiesAsian.idl>
#include <com/sun/star/style/ParagraphPropertiesComplex.idl>

#include <com/sun/star/drawing/TextFitToSizeType.idl>

#include <com/sun/star/drawing/TextAdjust.idl>

#include <com/sun/star/drawing/TextAnimationDirection.idl>

#include <com/sun/star/drawing/TextAnimationKind.idl>

#include <com/sun/star/drawing/TextVerticalAdjust.idl>
#include <com/sun/star/drawing/TextHorizontalAdjust.idl>
#include <com/sun/star/text/WritingMode.idl>


 module com {  module sun {  module star {  module drawing {



/** This is a set of properties to describe the style for rendering the
    text area inside a shape.
 */
published service TextProperties
{
    /** The properties in this service set default formats for text
        inside the Shape.
     */
    service com::sun::star::style::CharacterProperties;


    /** The properties in this service set default formats for Asian text
        inside the Shape.
     */
    [optional] service com::sun::star::style::CharacterPropertiesAsian;


    /** The properties in this service set default formats for complex text
        inside the Shape.
     */
    [optional] service com::sun::star::style::CharacterPropertiesComplex;


    /** The properties in this service set default formats for text
        inside the Shape.
     */
    service com::sun::star::style::ParagraphProperties;


    /** The properties in this service set default formats for Asian text
        inside the Shape.
     */
    [optional] service com::sun::star::style::ParagraphPropertiesAsian;


    /** The properties in this service set default formats for complex text
        inside the Shape.
     */
    [optional] service com::sun::star::style::ParagraphPropertiesComplex;

    /** If this is `TRUE`, numbering is ON for the text of
        this Shape.
     */
    [optional, property] boolean IsNumbering;


    /** describes the numbering levels.
        <p>The different rules accessible with this
        com::sun::star::container::XIndexReplace interface
        are sequences of property values as described in the service
        com::sun::star::style::NumberingRule.</p>
     */
    [optional, property] com::sun::star::container::XIndexReplace NumberingRules;


    /** If this value is `TRUE`, the height of the Shape is
        automatically expanded/shrunk when text is added to or removed from
        the Shape.
     */
    [property] boolean TextAutoGrowHeight;


    /** If this value is `TRUE`, the width of the Shape is
        automatically expanded/shrunk when text is added to or removed from
        the Shape.
     */
    [property] boolean TextAutoGrowWidth;

    /** If this value is `TRUE`, the left edge of every line of text is
        aligned with the left edge of this Shape.
     */
    [property] boolean TextContourFrame;


    /** With this set to a value other than `NONE`, the text inside of
        the Shape is stretched or scaled to fit into the Shape.
     */
    [property] com::sun::star::drawing::TextFitToSizeType TextFitToSize;


    /** adjusts the horizontal position of the text inside of
        the Shape.
     */
    [property] com::sun::star::drawing::TextHorizontalAdjust TextHorizontalAdjust;


    /** adjusts the vertical position of the text inside of
        the Shape.
     */
    [property] com::sun::star::drawing::TextVerticalAdjust TextVerticalAdjust;


    /** This is the distance from the left edge of the Shape
        to the left edge of the text.
        <p>This is only useful if Text::TextHorizontalAdjust is
        BLOCK or STRETCH or if
        Text::TextFitSize is `TRUE`.</p>
     */
    [property] long TextLeftDistance;


    /** This is the distance from the right edge of the Shape
        to the right edge of the text.

        <p>This is only useful if Text::TextHorizontalAdjust is
        BLOCK or STRETCH
        or if Text::TextFitSize is `TRUE`.</p>
     */
    [property] long TextRightDistance;


    /** This is the distance from the upper edge of the Shape to
        the upper edge of the text.

        <p>This is only useful if Text::TextVerticalAdjust is
        BLOCK or if Text::TextFitSize is
        `TRUE`.</p>
     */
    [property] long TextUpperDistance;


    /** This is the distance from the lower edge of the Shape to the
        lower edge of the text.



        <p>This is only useful if Text::TextVerticalAdjust is
        BLOCK or if Text::TextFitSize is
        `TRUE`.</p>
     */
    [property] long TextLowerDistance;


    /** with this property you can set the maximum height for a shape with text.
        On edit, the auto grow feature will not grow the object higher than
        the value of this property.
    */
    [property] long TextMaximumFrameHeight;


    /** with this property you can set the maximum width for a shape with text.
        On edit, the auto grow feature will not grow the objects wider than
        the value of this property.
    */
    [property] long TextMaximumFrameWidth;


    /** with this property you can set the minimum height for a shape with text.
        On edit, the auto grow feature will not shrink the objects height smaller
        than the value of this property.
    */
    [property] long TextMinimumFrameHeight;


    /** with this property you can set the minimum width for a shape with text.
        On edit, the auto grow feature will not shrink the object width smaller
        than the value of this property.
    */
    [property] long TextMinimumFrameWidth;


    /** This is the number of pixels the text is moved in each animation step.
     */
    [property] short TextAnimationAmount;


    /** This number defines how many times the text animation is repeated.
        <p>If this is set to zero, the repeat is endless.</p>
     */
    [property] short TextAnimationCount;


    /** This is the delay in thousandths of a second between each
        of the animation steps.
     */
    [property] short TextAnimationDelay;


    /** This enumeration defines the direction in which the text moves.
     */
    [property] com::sun::star::drawing::TextAnimationDirection TextAnimationDirection;


    /** This value defines the type of animation.
     */
    [property] com::sun::star::drawing::TextAnimationKind TextAnimationKind;


    /** If this value is `TRUE`, the text is visible at the start of the
        animation.
     */
    [property] boolean TextAnimationStartInside;


    /** If this value is `TRUE`, the text is visible at the end of the
        animation.
     */
    [property] boolean TextAnimationStopInside;


    /** This value selects the writing mode for the text.
     */
    [property] ::com::sun::star::text::WritingMode TextWritingMode;
};


}; }; }; };

#endif

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