|
//---------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Description: Public enumeration of text and font properties.
//
// History:
// 04/22/2003 wchao - Created
// 01/25/2005 mleonov - Converted FontWeight, FontStretch and FontStyle from enums to value types
// and moved them to separate files.
//
//---------------------------------------------------------------------------
using System;
namespace System.Windows
{
#region Text formatting properties
/// <summary>
/// Enum specifying where a box should be positioned Vertically
/// </summary>
public enum BaselineAlignment
{
/// <summary>Align top toward top of container</summary>
Top,
/// <summary>Center vertically</summary>
Center,
/// <summary>Align bottom toward bottom of container</summary>
Bottom,
/// <summary>Align at baseline</summary>
Baseline,
/// <summary>Align toward text's top of container</summary>
TextTop,
/// <summary>Align toward text's bottom of container</summary>
TextBottom,
/// <summary>Align baseline to subscript position of container</summary>
Subscript,
/// <summary>Align baseline to superscript position of container</summary>
Superscript,
}
/// <summary>
/// This property describes how content of a block is aligned.
/// </summary>
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
public enum TextAlignment
{
/// <summary>
/// In horizontal inline progression, the text is aligned on the left.
/// </summary>
Left,
/// <summary>
/// In horizontal inline progression, the text is aligned on the right.
/// </summary>
Right,
/// <summary>
/// The text is center aligned.
/// </summary>
Center,
/// <summary>
/// The text is justified.
/// </summary>
Justify,
}
/// <summary>
/// The 'flow-direction' property specifies whether the primary text advance
/// direction shall be left-to-right or right-to-left.
/// </summary>
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
public enum FlowDirection
{
/// <internalonly>
/// Sets the primary text advance direction to left-to-right, and the line
/// progression direction to top-to-bottom as is common in most Roman-based
/// documents. For most characters, the current text position is advanced
/// from left to right after each glyph is rendered. The 'direction' property
/// is set to 'ltr'.
/// </internalonly>
LeftToRight,
/// <internalonly>
/// Sets the primary text advance direction to right-to-left, and the line
/// progression direction to top-to-bottom as is common in Arabic or Hebrew
/// scripts. The direction property is set to 'rtl'.
/// </internalonly>
RightToLeft,
}
/// <summary>
/// Breaking condition around inline object
/// </summary>
/// <remarks>
/// | BreakDesired | BreakPossible | BreakRestrained | BreakAlways |
/// ------------------+--------------+---------------+-----------------+-------------|
/// BreakDesired | TRUE | TRUE | FALSE | TRUE |
/// ------------------+--------------+---------------+-----------------+-------------|
/// BreakPossible | TRUE | FALSE | FALSE | TRUE |
/// ------------------+--------------+---------------+-----------------+-------------|
/// BreakRestrained | FALSE | FALSE | FALSE | TRUE |
/// ------------------+--------------+---------------+-----------------+-------------|
/// BreakAlways | TRUE | TRUE | TRUE | TRUE |
/// ------------------+--------------+---------------+-----------------+-------------|
/// </remarks>
public enum LineBreakCondition
{
/// <summary>
/// Break if not prohibited by other
/// </summary>
BreakDesired,
/// <summary>
/// Break if allowed by other
/// </summary>
BreakPossible,
/// <summary>
/// Break prohibited always
/// </summary>
BreakRestrained,
/// <summary>
/// Break allowed always
/// </summary>
BreakAlways
}
/// <summary>
/// This property determines the appearance of the list item's marker
/// </summary>
public enum TextMarkerStyle
{
/// <summary>
/// No marker
/// </summary>
None,
/// <summary>
/// Solid disc circle
/// </summary>
Disc,
/// <summary>
/// Hallow disc circle
/// </summary>
Circle,
/// <summary>
/// Hallow square shape
/// </summary>
Square,
/// <summary>
/// Solid square shape
/// </summary>
Box,
/// <summary>
/// Lower roman letter e.g. i, ii, iii, iv, etc.
/// </summary>
LowerRoman,
/// <summary>
/// Upper roman letter e.g. I, II, III, IV, etc.
/// </summary>
UpperRoman,
/// <summary>
/// Lowercase ascii e.g. a, b, c, etc.
/// </summary>
LowerLatin,
/// <summary>
/// Uppercase ascii e.g. A, B, C, etc.
/// </summary>
UpperLatin,
/// <summary>
/// Decimal numbers, beginning with 1
/// </summary>
Decimal,
}
/// <summary>
/// This property controls whether or not text wraps when it reaches the edge
/// of its containing box
/// </summary>
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
public enum TextWrapping
{
/// <summary>
/// Line-breaking occurs if the line overflows the available block width.
/// However, a line may overflow the block width if the line breaking algorithm
/// cannot determine a break opportunity, as in the case of a very long word.
/// </summary>
WrapWithOverflow,
/// <summary>
/// No line wrapping is performed. In the case when lines are longer than the
/// available block width, the overflow will be treated in accordance with the
/// 'overflow' property specified in the element.
/// </summary>
NoWrap,
/// <summary>
/// Line-breaking occurs if the line overflow the available block width, even
/// if the standard line breaking algorithm cannot determine any opportunity.
/// For example, this deals with the situation of very long words constrained in
/// a fixed-width container with no scrolling allowed.
/// </summary>
Wrap,
}
/// <summary>
/// This property determines how text is trimmed when it overflows the edge of its
/// containing box.
/// </summary>
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
public enum TextTrimming
{
/// <summary>
/// Default no trimming
/// </summary>
None,
/// <summary>
/// Text is trimmed at character boundary. Ellipsis is drawn in place of invisible part.
/// </summary>
CharacterEllipsis,
/// <summary>
/// Text is trimmed at word boundary. Ellipsis is drawn in place of invisible part.
/// </summary>
WordEllipsis,
}
#endregion // Text properties
#region Typography properties
/// <summary>
/// Font typographic variants
/// </summary>
public enum FontVariants
{
/// <summary>
/// Variant normal
/// </summary>
Normal,
/// <summary>
/// Superscript
/// </summary>
Superscript,
/// <summary>
/// Subscript
/// </summary>
Subscript,
/// <summary>
/// Ordinal
/// </summary>
Ordinal,
/// <summary>
/// Inferior
/// </summary>
Inferior,
/// <summary>
/// Ruby
/// </summary>
Ruby
}
/// <summary>
/// Font typographic capital treatment
/// </summary>
public enum FontCapitals
{
/// <summary>
/// Capitals normal
/// </summary>
Normal,
/// <summary>
/// Capitals all small caps
/// </summary>
AllSmallCaps,
/// <summary>
/// Capitals small caps
/// </summary>
SmallCaps,
/// <summary>
/// Capitals all petite caps
/// </summary>
AllPetiteCaps,
/// <summary>
/// Capitals petite caps
/// </summary>
PetiteCaps,
/// <summary>
/// Capitals unicase
/// </summary>
Unicase,
/// <summary>
/// Capitals titling
/// </summary>
Titling
}
/// <summary>
/// Font typographic fraction style
/// </summary>
public enum FontFraction
{
/// <summary>
/// Default
/// </summary>
Normal,
/// <summary>
/// Slashed fraction
/// </summary>
Slashed,
/// <summary>
/// Stacked fraction
/// </summary>
Stacked
}
/// <summary>
/// Font typographic numeral style types
/// </summary>
public enum FontNumeralStyle
{
/// <summary>
/// Numeral style normal
/// </summary>
Normal,
/// <summary>
/// Numeral style lining
/// </summary>
Lining,
/// <summary>
/// Numeral style old style
/// </summary>
OldStyle
}
/// <summary>
/// Font typographic numeral alignment types
/// </summary>
public enum FontNumeralAlignment
{
/// <summary>
/// Numeral alignment normal
/// </summary>
Normal,
/// <summary>
/// Numeral alignment proportional
/// </summary>
Proportional,
/// <summary>
/// Numeral alignment tabulr
/// </summary>
Tabular
}
/// <summary>
/// Font East Asian width types
/// </summary>
public enum FontEastAsianWidths
{
/// <summary>
/// East Asian width normal
/// </summary>
Normal,
/// <summary>
/// East Asian width proportional
/// </summary>
Proportional,
/// <summary>
/// East Asian width full
/// </summary>
Full,
/// <summary>
/// East Asian width one half of full
/// </summary>
Half,
/// <summary>
/// East Asian width one third of full
/// </summary>
Third,
/// <summary>
/// East Asian width one quarter of full
/// </summary>
Quarter
}
/// <summary>
/// Font East Asian language types
/// </summary>
public enum FontEastAsianLanguage
{
/// <summary>
/// East Asian language normal
/// </summary>
Normal,
/// <summary>
/// East Asian language follows JIS-78
/// </summary>
Jis78,
/// <summary>
/// East Asian language follows JIS-83
/// </summary>
Jis83,
/// <summary>
/// East Asian language follows JIS-90
/// </summary>
Jis90,
/// <summary>
/// East Asian language follows JIS-04
/// </summary>
Jis04,
/// <summary>
/// East Asian language follows Hojo Kanji (JIS X 0212:1990)
/// </summary>
HojoKanji,
/// <summary>
/// East Asian language follows National Language Committee for Kanji
/// </summary>
NlcKanji,
/// <summary>
/// East Asian language is simplified forms
/// </summary>
Simplified,
/// <summary>
/// East Asian language is traditional forms
/// </summary>
Traditional,
/// <summary>
/// East Asian language is traditional name forms
/// </summary>
TraditionalNames
}
#endregion // Typography properties
}
|