File: Core\CSharp\MS\Internal\TextFormatting\ITextSymbols.cs
Project: wpf\src\PresentationCore.csproj (PresentationCore)
//-----------------------------------------------------------------------
//
//  Microsoft Windows Client Platform
//  Copyright (C) Microsoft Corporation, 2004
//
//  File:      ITextSymbols.cs
//
//  Contents:  Definition of text symbols
//
//  Spec:      http://team/sites/Avalon/Specs/Text%20Formatting%20API.doc
//
//  Created:   1-2-2004 Worachai Chaoweeraprasit (wchao)
//  History:  1-19-2004 Garyyang: Change the class into internal interface
//
//------------------------------------------------------------------------
 
 
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.TextFormatting;
 
using MS.Internal.Shaping;
 
namespace MS.Internal.TextFormatting
{
    /// <summary>
    /// Provide definition for a group of symbols that may be represented by 
    /// multiple distinct TextShapeableSymbols. TextSymbols produces a 
    /// collection of TextShapeableSymbols objects.
    /// </summary>
    internal interface ITextSymbols
    {
        /// <summary>
        /// Get a list of TextShapeableSymbols object within the specified character range
        /// </summary>
        /// <param name="glyphingCache">Glyphing cache</param>        
        /// <param name="characterBufferReference">reference to character buffer of the first character to obtain TextShapeableSymbols</param>
        /// <param name="characterLength">number of characters to obtain TextShapeableSymbols</param>
        /// <param name="rightToLeft">flag indicates whether the specified character string is to be written from right to left</param>
        /// <param name="isRightToLeftParagraph">flag indicates whether the paragraph is to be written from right to left</param>
        /// <param name="digitCulture">specifies a culture used for number substitution; can be null to disable number substitution</param>
        /// <param name="textModifierScope">specifies the text modifier currently in scope, if any; can be null</param>
        /// <returns>list of TextShapeableSymbols objects</returns>
        IList<TextShapeableSymbols> GetTextShapeableSymbols(
            GlyphingCache               glyphingCache,
            CharacterBufferReference    characterBufferReference,
            int                         characterLength,
            bool                        rightToLeft,
            bool                        isRightToLeftParagraph,
            CultureInfo                 digitCulture,
            TextModifierScope           textModifierScope,
            TextFormattingMode          textFormattingMode,
            bool                        isSideways
            );
    }
}