/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: CharacterProperties.idl,v $
 *
 *  $Revision: 1.29 $
 *
 *  last change: $Author: obo $ $Date: 2006-07-14 08:36:45 $
 *
 *  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_CharacterProperties_idl__
#define __com_sun_star_style_CharacterProperties_idl__

#ifndef __com_sun_star_lang_Locale_idl__
#include <com/sun/star/lang/Locale.idl>
#endif

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

#ifndef __com_sun_star_awt_FontSlant_idl__
#include <com/sun/star/awt/FontSlant.idl>
#endif

#ifndef __com_sun_star_container_XNameContainer_idl__
#include <com/sun/star/container/XNameContainer.idl>
#endif


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

 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 as specified in
        com.sun.star.awt.FontFamily .
     */
    [property] short CharFontFamily;
    //-------------------------------------------------------------------------

    /** This property contains the text encoding of the font as specified in
        com.sun.star.awt.CharSet.
     */
    [property] short CharFontCharSet;
    //-------------------------------------------------------------------------

    /** This property contains the font pitch as specified in 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 of raisement/lowerment of superscript/subscript
        characters.

        <p>Negative values denote subscripts and positive values superscripts.</p>
     */
    [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;

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

    /** optional property to determine 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;

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

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

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

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

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

    /** optional property which 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 character(s) is(are) crossed out.
     */
    [optional, property] boolean CharCrossedOut;

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

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

    //-------------------------------------------------------------------------
    /** determins 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;

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

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

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

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

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

    /** optional property which 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;

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

    /** optional property which 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;

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

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

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

    /** optional property which specifies the fundamental technology of the font.

        @see com::sun::star::awt::FontType
     */
    [optional, property] short CharFontType;

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

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

    //-------------------------------------------------------------------------
    /** specifies if the characters are formatted and
        displayed with a contour effect.
     */
    [optional, property] boolean CharContoured;
    //-------------------------------------------------------------------------
    /** determins whether text is formatted in two lines.
     <p>It is linked to the properties CharCombinePrefix and CharCombineSuffix.</p>
     */
    [optional, property] boolean CharCombineIsOn;
    //-------------------------------------------------------------------------
    /** 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;
    //-------------------------------------------------------------------------
    /** 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;
    //-------------------------------------------------------------------------
    /** contains the font emphasis value as <type scope="com::sun::star::text">FontEmphasis</type>.
     */
    [optional, property] short CharEmphasis;

    //-------------------------------------------------------------------------
    /** contains the relief value as <type scope="com::sun::star::text">FontRelief</type>.
     */
    [optional, property] short CharRelief;
    //-------------------------------------------------------------------------
    /** contains the text that is set as ruby.
     */
    [optional, property] string RubyText;
    //-------------------------------------------------------------------------
    /** determins the adjustment of the ruby text as <type scope="com::sun::star::text">RubyAdjust</type>.
     */
    [optional, property] short RubyAdjust;
    //-------------------------------------------------------------------------
    /** contains the name of the character style that is applied to RubyText.
     */
    [optional, property] string RubyCharStyleName;
    //-------------------------------------------------------------------------
    /** determins whether the ruby text is printed above/left or below/right of the text.
     */
    [optional, property] boolean RubyIsAbove;

    //-------------------------------------------------------------------------
    /** determins the rotation of a character in degree.
         <p>Depending on the implementation only certain values may be allowed.
        </p>
     */
    [optional, property] short CharRotation;
    //-------------------------------------------------------------------------
    /** determins whether the text formatting tries to fit rotated text into the
         surrounded line height.
     */
    [optional, property] boolean CharRotationIsFitToLine;
    //-------------------------------------------------------------------------
    /** determins 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;

    //-------------------------------------------------------------------------
    /** contains the URL of a hyperlink (if set).
     */
    [optional, property] string HyperLinkURL;

    //-------------------------------------------------------------------------
    /** contains the name of the target for a hyperlink (if set).
     */
    [optional, property] string HyperLinkTarget;

    //-------------------------------------------------------------------------
    /** contains the name of the hyperlink (if set).
     */
    [optional, property] string HyperLinkName;

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

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

    //-------------------------------------------------------------------------
    /** This is the additional height used for subscript or superscript
        characters in units of percent.
        For subscript characters the value is negative and for
        superscript characters positive.
     */
    [optional, property] byte CharEscapementHeight;

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

    //-------------------------------------------------------------------------
    /** gives the color of the underline for that character.
     */
    [property] com::sun::star::util::Color CharUnderlineColor;

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

    //-------------------------------------------------------------------------
    /** 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.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;

};

//=============================================================================
}; }; }; };

#endif
