/* -*- 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_style_CharacterProperties_idl__
#define __com_sun_star_style_CharacterProperties_idl__

#include <com/sun/star/lang/Locale.idl>
#include <com/sun/star/util/Color.idl>
#include <com/sun/star/awt/FontSlant.idl>
#include <com/sun/star/container/XNameContainer.idl>
#include <com/sun/star/table/BorderLine2.idl>
#include <com/sun/star/table/ShadowFormat.idl>
#include <com/sun/star/beans/PropertyValue.idl>


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


/** This is a set of properties to describe the style of characters.@see ParagraphProperties
 */
published service CharacterProperties
{

    /** This property specifies the name of the font style.

        <p>It may contain more than one name separated by comma.</p>
     */
    [property] string CharFontName;


    /** This property contains the name of the font style.

        <p>This property may be empty.</p>
     */
    [property] string CharFontStyleName;


    /** This property contains font family.
        @see com::sun::star::awt::FontFamily
     */
    [property] short CharFontFamily;


    /** This property contains the text encoding of the font.
        @see com::sun::star::awt::CharSet
     */
    [property] short CharFontCharSet;


    /** This property contains the font pitch.
        @see com::sun::star::awt::FontPitch
     */
    [property] short CharFontPitch;


    /** This property contains the value of the text color.
     */
    [property] com::sun::star::util::Color CharColor;


    /** specifies the percentage by which to raise/lower superscript/subscript
        characters.

        <p>Negative values denote subscripts and positive values superscripts.</p>

        @see CharEscapementHeight
     */
    [optional, property] short CharEscapement;


    /** This value contains the height of the characters in point.
     */
    [property] float CharHeight;


    /** This property contains the value for the character underline.
        @see com::sun::star::awt::FontUnderline
     */
    [property] short CharUnderline;


    /** This property contains the value of the font weight.
        @see com::sun::star::awt::FontWeight
     */
    [property] float CharWeight;


    /** This property contains the value of the posture of the document.
        @see com::sun::star::awt::FontSlant
     */
    [property] com::sun::star::awt::FontSlant CharPosture;


    /** This optional property determines whether the kerning tables from the
        current font are used.

        <p>Automatic <em>kerning</em> applies a spacing in between certain
        pairs of characters to make the text look better.</p>
     */
    [optional, property] boolean CharAutoKerning;


    /** This optional property contains the text background color.
     */
    [optional, property] com::sun::star::util::Color CharBackColor;


    /** This optional property contains the text shading value.
     */
    [optional, property] long CharShadingValue;


    /** This property determines if the text background color is set to
        transparent.
     */
    [optional, property] boolean CharBackTransparent;


    /** This optional property contains the value of the case-mapping of the
        text for formatting and displaying.

        @see CaseMap
     */
    [optional, property] short CharCaseMap;


    /** This property is `TRUE` if the characters are crossed out.
     */
    [optional, property] boolean CharCrossedOut;


    /** If this optional property is `TRUE`, then the characters are flashing.
     */
    [optional, property] boolean CharFlash;


    /** This property determines the type of the strike out of the character.
        @see com::sun::star::awt::FontStrikeout
    */
    [optional, property] short CharStrikeout;


    /** If this property is `TRUE`, the underline and strike-through
        properties are not applied to white spaces.
     */
    [optional, property] boolean CharWordMode;


    /** This optional property contains the value of the kerning of the
        characters.
     */
    [optional, property] short CharKerning;


    /** This property contains the value of the locale.
     */
    [property] com::sun::star::lang::Locale CharLocale;


    /** This optional property marks a range of characters to prevent it from
        being broken into two lines.

        <p> A line break is applied before the range of characters if
        the layout makes a break necessary within the range.</p>
    */
    [optional, property] boolean CharKeepTogether;


    /** This optional property marks a range of characters to ignore a line
        break in this area.

        <p> A line break is applied behind the range of characters if
        the layout makes a break necessary within the range. That means that
        the text may go through the border.</p>
     */
    [optional, property] boolean CharNoLineBreak;


    /** This optional property specifies if the characters are formatted and
        displayed with a shadow effect.
     */
    [optional, property] boolean CharShadowed;


    /** This optional property specifies the fundamental technology of the font.
        @see com::sun::star::awt::FontType
     */
    [optional, property] short CharFontType;


    /** This optional property specifies the name of the style of the font.
     */
    [optional, property] string CharStyleName;


    /** This optional property specifies if the characters are formatted and
        displayed with a contour effect.
     */
    [optional, property] boolean CharContoured;


    /** This optional property determines whether text is formatted in two lines.

        <p>It is linked to the properties CharCombinePrefix and CharCombineSuffix.</p>
     */
    [optional, property] boolean CharCombineIsOn;


    /** This optional property contains the prefix (usually parenthesis) before
        text that is formatted in two lines.

        <p>It is linked to the properties CharCombineIsOn and CharCombineSuffix.</p>
     */
    [optional, property] string CharCombinePrefix;


    /** This optional property contains the suffix (usually parenthesis) after
        text that is formatted in two lines.

        <p>It is linked to the properties CharCombineIsOn and CharCombinePrefix.</p>
     */
    [optional, property] string CharCombineSuffix;


    /** This optional property contains the font emphasis value.
        @see com::sun::star::text::FontEmphasis
     */
    [optional, property] short CharEmphasis;


    /** This optional property contains the relief style of the characters.
        @see com::sun::star::text::FontRelief
     */
    [optional, property] short CharRelief;


    /** This optional property contains the text that is set as ruby.
     */
    [optional, property] string RubyText;


    /** This optional property determines the adjustment of the ruby .
        @see com::sun::star::text::RubyAdjust
     */
    [optional, property] short RubyAdjust;


    /** This optional property contains the name of the character style that is
        applied to RubyText.
     */
    [optional, property] string RubyCharStyleName;


    /** This optional property determines whether the ruby text is printed
        above/left or below/right of the text.
     */
    [optional, property] boolean RubyIsAbove;


    /** This optional property determines the rotation of a character in tenths
        of a degree.

       <p>Depending on the implementation only certain values may be allowed.</p>
     */
    [optional, property] short CharRotation;


    /** This optional property determines whether the text formatting tries to
        fit rotated text into the surrounded line height.
     */
    [optional, property] boolean CharRotationIsFitToLine;


    /** This optional property determines the percentage value for scaling the
        width of characters.

        <p>The value refers to the original width which is denoted by 100,
        and it has to be greater than 0.</p>
   */
    [optional, property] short CharScaleWidth;


    /** This optional property contains the URL of a hyperlink.
     */
    [optional, property] string HyperLinkURL;


    /** This optional property contains the name of the target for a hyperlink.
     */
    [optional, property] string HyperLinkTarget;


    /** This optional property contains the name of the hyperlink.
     */
    [optional, property] string HyperLinkName;


    /** This optional property contains the character style name for visited
        hyperlinks.
     */
    [optional, property] string VisitedCharStyleName;


    /** This optional property contains the character style name for unvisited
        hyperlinks.
     */
    [optional, property] string UnvisitedCharStyleName;


    /** This is the relative height used for subscript or superscript
        characters in units of percent.

        <p>The value 100 denotes the original height of the characters.</p>

        @see CharEscapement
     */
    [optional, property] byte CharEscapementHeight;


    /** This optional property determines if the word can be hyphenated at the
        character.
     */
    [optional, property] boolean CharNoHyphenation;


    /** This property contains the color of the underline for the characters.
        @see CharUnderlineHasColor
     */
    [property] com::sun::star::util::Color CharUnderlineColor;


    /** This property specifies if the property CharUnderlineColor is used for
        an underline.
        @see CharUnderlineColor
     */
    [property] boolean CharUnderlineHasColor;


    /** This optional property specifies the names of the all styles applied to
        the font.

        <p> It is not guaranteed that the order in the sequence reflects
        the order of the evaluation of the character style attributes.</p>

        @since OOo 1.1.2
     */
    [optional, property] sequence<string> CharStyleNames;


    /** If this optional property is `TRUE`, then the characters are invisible.

        @since OOo 2.0
     */
    [optional, property] boolean CharHidden;


    /** This property stores XML attributes. They will be saved to and restored
        from automatic styles inside XML files.

        @see com::sun::star::xml::AttributeContainer
     */
    [optional, property] com::sun::star::container::XNameContainer  TextUserDefinedAttributes;

    /** This property contains the left border of the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] com::sun::star::table::BorderLine2 CharLeftBorder;

    /** This property contains the right border of the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] com::sun::star::table::BorderLine2 CharRightBorder;

    /** This property contains the top border of the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] com::sun::star::table::BorderLine2 CharTopBorder;

    /** This property contains the bottom border of the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] com::sun::star::table::BorderLine2 CharBottomBorder;

    /** This property contains the distance from the border to the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] long CharBorderDistance;

    /** This property contains the distance from the left border to the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] long CharLeftBorderDistance;

    /** This property contains the distance from the right border to the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] long CharRightBorderDistance;

    /** This property contains the distance from the top border to the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] long CharTopBorderDistance;

    /** This property contains the distance from the bottom border to the object.
     *
     *  @since LibreOffice 4.2
    **/
    [property, optional] long CharBottomBorderDistance;

    /** Determines the type, color, and width of the shadow.
     *
     *  @since LibreOffice 4.2
    **/
    [optional, property] com::sun::star::table::ShadowFormat CharShadowFormat;

    /** Determines the color of the highlight.
     *
     *  @since LibreOffice 4.2
    **/
    [optional, property] com::sun::star::util::Color CharHighlight;

    /** Grab bag of character properties, used as a string-any map for interim interop purposes.

        @since LibreOffice 4.3

        <p>This property is intentionally not handled by the ODF filter. Any
        member that should be handled there should be first moved out from this grab
        bag to a separate property.</p>
    */
    [optional, property] sequence<com::sun::star::beans::PropertyValue> CharInteropGrabBag;

};

}; }; }; };

#endif

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