/**************************************************************
 * 
 * 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_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.
        @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 of raisement/lowerment of 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 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 OpenOffice 1.1.2
     */
    [optional, property] sequence<string> CharStyleNames;

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

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

        @since OpenOffice 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;

};

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

#endif