TextRunTypographyProperties.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextRunTypographyProperties.cs / 1 / TextRunTypographyProperties.cs

                            //------------------------------------------------------------------------ 
//
//  Microsoft Windows Client Platform
//  Copyright (C) Microsoft Corporation
// 
//  File:      TextRunTypographyProperties.cs
// 
//  Contents:  Text run Typography properties 
//
//  Spec:      http://team/sites/Avalon/Specs/Text%20Formatting%20API.doc 
//
//  Created:   1-7-2005 Sergey Malkin (SergeyM)
//
//----------------------------------------------------------------------- 

 
using System; 
using System.Windows;
using MS.Internal.Shaping; 

namespace System.Windows.Media.TextFormatting
{
    ///  
    /// Text run typography properties
    /// 
    /// Client set properties to generate set of features 
    /// that will be processed by OpenType layout engine.
    /// 
    /// For details see OpenType font specification at
    ///      http://www.microsoft.com/typography/
    ///
    ///  
    public abstract class TextRunTypographyProperties
    { 
        #region Public typography properties 

        ///  
        /// Common ligatures assisting with text readability.
        /// Examples: fi, fl ligatures
        /// 
        public abstract bool StandardLigatures 
        { get; }
 
        ///  
        /// Ligature forms depending on surrounding context
        ///  
        public abstract bool ContextualLigatures
        { get; }

        ///  
        /// Additional ligatures to assist with text readability
        /// Examples: Qu, Th 
        ///  
        public abstract bool DiscretionaryLigatures
        { get; } 

        /// 
        /// Ligatures used in historical typography
        /// Examples: ct, st 
        /// 
        public abstract bool HistoricalLigatures 
        { get; } 

        ///  
        /// Custom forms defined by surrounding context
        /// Examples: multiple medial forms in Urdu Nastaliq fonts
        /// 
        public abstract bool ContextualAlternates 
        { get; }
 
        ///  
        /// Forms commonly used in the past
        /// Examples: long s, old Fraktur k 
        /// 
        public abstract bool HistoricalForms
        { get; }
 
        /// 
        /// Feature adjusting spacing between charactersto enchance word shape 
        ///  
        public abstract bool Kerning
        { get; } 

        /// 
        /// Feature adjusting inter-glyph spacing to provide better readability for all-`capital text
        ///  
        public abstract bool CapitalSpacing
        { get; } 
 
        /// 
        /// Feature adjusting punctuation types of characters to the case of the surrounding glyphs 
        /// 
        public abstract bool CaseSensitiveForms
        { get; }
 
        /// 
        /// Font specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet1
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet2
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet3
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet4
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet5
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet6
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet7
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet8
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet9
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet10
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet11
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet12
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet13
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet14
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet15
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet16
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet17
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet18
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet19
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet20
        { get; } 
 
        /// 
        /// Substitute nominal zero with slashed zero. 
        /// 
        public abstract bool SlashedZero
        { get; }
 
        /// 
        /// Substitute regular greek forms with forms used in mathematical notation. 
        ///  
        public abstract bool MathematicalGreek
        { get; } 

        /// 
        /// Replace standard forms in Japaneese fonts with preferred typographic forms
        ///  
        public abstract bool EastAsianExpertForms
        { get; } 
 
        /// 
        /// Render different types of typographic variations. Include Normal, Subscript, Superscript, 
        /// Inferior, Ordinal and Ruby.
        /// 
        public abstract FontVariants Variants
        { get; } 

        ///  
        /// Select set of `capital forms from Normal, SmallCaps, AllSmallCaps, 
        /// PetiteCaps, AllPetiteCaps, Unicase and Titling.
        ///  
        public abstract FontCapitals ----s
        { get; }

        ///  
        /// Feature selecting special fractional forms of nominator, denominator and slash.
        ///  
        public abstract FontFraction Fraction { get; } 

        ///  
        /// Select set of glyphs to render alternate numeral forms from Normal, OldStyle and Lining
        /// 
        public abstract FontNumeralStyle NumeralStyle
        { get; } 

        ///  
        /// Select glyph set for different numeral aligning options from Default, Proportional and Tabular 
        /// 
        public abstract FontNumeralAlignment NumeralAlignment 
        { get; }

        /// 
        /// Select from different width styles for Latin characters in East Asian fonts. 
        /// 
        public abstract FontEastAsianWidths EastAsianWidths 
        { get; } 

        ///  
        /// Select glyphs forms specific for particular writing system and language.
        /// 
        public abstract FontEastAsianLanguage EastAsianLanguage
        { get; } 

        ///  
        /// Select glyph forms having swashes by specified index. 
        /// Examples: Q with tail extended under following letter
        ///  
        public abstract int StandardSwashes
        { get; }

        ///  
        /// Select swash forms of glyphs by specified index and based on surrounding characters.
        /// Examples: d with flourish occupying space above following ea. 
        ///  
        public abstract int ContextualSwashes
        { get; } 

        /// 
        /// Select alternate form of glyphs by specified index.
        /// Examples: multiple forms of ampersand. 
        /// 
        public abstract int StylisticAlternates 
        { get; } 

        ///  
        /// Forms commonly used in notation.
        /// Examples: characters placed in circles, parentheses
        /// 
        public abstract int AnnotationAlternates 
        { get; }
 
        #endregion Public typography properties 

        ///  
        /// Should be called every time any property changes it's value
        /// 
        protected void OnPropertiesChanged()
        { 
            _features = null;
        } 
 
        /// 
        /// Returns cached feature array. 
        /// 
        internal void GetCachedFeatureSet(out Feature[] features, out int featureCount)
        {
            features        = _features; 
            featureCount    = _featureCount;
        } 
 
        /// 
        /// Set cached feature array. 
        /// 
        internal void SetCachedFeatureSet(Feature[] features, int featureCount)
        {
            _features        = features; 
            _featureCount    = featureCount;
        } 
 
        private Feature[] _features;
        private int _featureCount; 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------ 
//
//  Microsoft Windows Client Platform
//  Copyright (C) Microsoft Corporation
// 
//  File:      TextRunTypographyProperties.cs
// 
//  Contents:  Text run Typography properties 
//
//  Spec:      http://team/sites/Avalon/Specs/Text%20Formatting%20API.doc 
//
//  Created:   1-7-2005 Sergey Malkin (SergeyM)
//
//----------------------------------------------------------------------- 

 
using System; 
using System.Windows;
using MS.Internal.Shaping; 

namespace System.Windows.Media.TextFormatting
{
    ///  
    /// Text run typography properties
    /// 
    /// Client set properties to generate set of features 
    /// that will be processed by OpenType layout engine.
    /// 
    /// For details see OpenType font specification at
    ///      http://www.microsoft.com/typography/
    ///
    ///  
    public abstract class TextRunTypographyProperties
    { 
        #region Public typography properties 

        ///  
        /// Common ligatures assisting with text readability.
        /// Examples: fi, fl ligatures
        /// 
        public abstract bool StandardLigatures 
        { get; }
 
        ///  
        /// Ligature forms depending on surrounding context
        ///  
        public abstract bool ContextualLigatures
        { get; }

        ///  
        /// Additional ligatures to assist with text readability
        /// Examples: Qu, Th 
        ///  
        public abstract bool DiscretionaryLigatures
        { get; } 

        /// 
        /// Ligatures used in historical typography
        /// Examples: ct, st 
        /// 
        public abstract bool HistoricalLigatures 
        { get; } 

        ///  
        /// Custom forms defined by surrounding context
        /// Examples: multiple medial forms in Urdu Nastaliq fonts
        /// 
        public abstract bool ContextualAlternates 
        { get; }
 
        ///  
        /// Forms commonly used in the past
        /// Examples: long s, old Fraktur k 
        /// 
        public abstract bool HistoricalForms
        { get; }
 
        /// 
        /// Feature adjusting spacing between charactersto enchance word shape 
        ///  
        public abstract bool Kerning
        { get; } 

        /// 
        /// Feature adjusting inter-glyph spacing to provide better readability for all-`capital text
        ///  
        public abstract bool CapitalSpacing
        { get; } 
 
        /// 
        /// Feature adjusting punctuation types of characters to the case of the surrounding glyphs 
        /// 
        public abstract bool CaseSensitiveForms
        { get; }
 
        /// 
        /// Font specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet1
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet2
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet3
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet4
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet5
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet6
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet7
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet8
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet9
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet10
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet11
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet12
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet13
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet14
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet15
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet16
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet17
        { get; } 
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        /// 
        public abstract bool StylisticSet18
        { get; }
 
        /// 
        /// Font-specific set of glyph forms designed to work with each other. 
        ///  
        public abstract bool StylisticSet19
        { get; } 

        /// 
        /// Font-specific set of glyph forms designed to work with each other.
        ///  
        public abstract bool StylisticSet20
        { get; } 
 
        /// 
        /// Substitute nominal zero with slashed zero. 
        /// 
        public abstract bool SlashedZero
        { get; }
 
        /// 
        /// Substitute regular greek forms with forms used in mathematical notation. 
        ///  
        public abstract bool MathematicalGreek
        { get; } 

        /// 
        /// Replace standard forms in Japaneese fonts with preferred typographic forms
        ///  
        public abstract bool EastAsianExpertForms
        { get; } 
 
        /// 
        /// Render different types of typographic variations. Include Normal, Subscript, Superscript, 
        /// Inferior, Ordinal and Ruby.
        /// 
        public abstract FontVariants Variants
        { get; } 

        ///  
        /// Select set of `capital forms from Normal, SmallCaps, AllSmallCaps, 
        /// PetiteCaps, AllPetiteCaps, Unicase and Titling.
        ///  
        public abstract FontCapitals ----s
        { get; }

        ///  
        /// Feature selecting special fractional forms of nominator, denominator and slash.
        ///  
        public abstract FontFraction Fraction { get; } 

        ///  
        /// Select set of glyphs to render alternate numeral forms from Normal, OldStyle and Lining
        /// 
        public abstract FontNumeralStyle NumeralStyle
        { get; } 

        ///  
        /// Select glyph set for different numeral aligning options from Default, Proportional and Tabular 
        /// 
        public abstract FontNumeralAlignment NumeralAlignment 
        { get; }

        /// 
        /// Select from different width styles for Latin characters in East Asian fonts. 
        /// 
        public abstract FontEastAsianWidths EastAsianWidths 
        { get; } 

        ///  
        /// Select glyphs forms specific for particular writing system and language.
        /// 
        public abstract FontEastAsianLanguage EastAsianLanguage
        { get; } 

        ///  
        /// Select glyph forms having swashes by specified index. 
        /// Examples: Q with tail extended under following letter
        ///  
        public abstract int StandardSwashes
        { get; }

        ///  
        /// Select swash forms of glyphs by specified index and based on surrounding characters.
        /// Examples: d with flourish occupying space above following ea. 
        ///  
        public abstract int ContextualSwashes
        { get; } 

        /// 
        /// Select alternate form of glyphs by specified index.
        /// Examples: multiple forms of ampersand. 
        /// 
        public abstract int StylisticAlternates 
        { get; } 

        ///  
        /// Forms commonly used in notation.
        /// Examples: characters placed in circles, parentheses
        /// 
        public abstract int AnnotationAlternates 
        { get; }
 
        #endregion Public typography properties 

        ///  
        /// Should be called every time any property changes it's value
        /// 
        protected void OnPropertiesChanged()
        { 
            _features = null;
        } 
 
        /// 
        /// Returns cached feature array. 
        /// 
        internal void GetCachedFeatureSet(out Feature[] features, out int featureCount)
        {
            features        = _features; 
            featureCount    = _featureCount;
        } 
 
        /// 
        /// Set cached feature array. 
        /// 
        internal void SetCachedFeatureSet(Feature[] features, int featureCount)
        {
            _features        = features; 
            _featureCount    = featureCount;
        } 
 
        private Feature[] _features;
        private int _featureCount; 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK