TextFormatterHost.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsHost / TextFormatterHost.cs / 1305600 / TextFormatterHost.cs

                            //---------------------------------------------------------------------------- 
//
// Copyright (C) Microsoft Corporation.  All rights reserved.
//
// File: ContainerParagraph.cs 
//
// Description: TextFormatter host. 
// 
// History:
//  05/05/2003 : [....] - moving from Avalon branch. 
//
//---------------------------------------------------------------------------

using System; 
using System.Diagnostics;
using System.Windows; 
using System.Windows.Media; 
using System.Windows.Media.TextFormatting;
 
namespace MS.Internal.PtsHost
{
    // ---------------------------------------------------------------------
    // TextFormatter host. 
    // ---------------------------------------------------------------------
    internal sealed class TextFormatterHost : TextSource 
    { 
        internal TextFormatterHost(TextFormatter textFormatter, TextFormattingMode textFormattingMode)
        { 
            if(textFormatter == null)
            {
                TextFormatter = TextFormatter.FromCurrentDispatcher(textFormattingMode);
            } 
            else
            { 
                TextFormatter = textFormatter; 
            }
        } 

        //--------------------------------------------------------------------
        // GetTextRun
        //------------------------------------------------------------------- 
        public override TextRun GetTextRun(int textSourceCharacterIndex)
        { 
            Debug.Assert(Context != null, "TextFormatter host is not initialized."); 
            Debug.Assert(textSourceCharacterIndex >= 0, "Character index must be non-negative.");
            return Context.GetTextRun(textSourceCharacterIndex); 
        }

        //--------------------------------------------------------------------
        // GetPrecedingText 
        //--------------------------------------------------------------------
        public override TextSpan GetPrecedingText(int textSourceCharacterIndexLimit) 
        { 
            Debug.Assert(Context != null, "TextFormatter host is not initialized.");
            Debug.Assert(textSourceCharacterIndexLimit >= 0, "Character index must be non-negative."); 
            return Context.GetPrecedingText(textSourceCharacterIndexLimit);
        }

        ///  
        /// TextFormatter to map a text source character index to a text effect character index
        ///  
        ///  text source character index  
        ///  the text effect index corresponding to the text effect character index 
        public override int GetTextEffectCharacterIndexFromTextSourceCharacterIndex( 
            int textSourceCharacterIndex
            )
        {
            Debug.Assert(Context != null, "TextFormatter host is not initialized."); 
            Debug.Assert(textSourceCharacterIndex>= 0, "Character index must be non-negative.");
            return Context.GetTextEffectCharacterIndexFromTextSourceCharacterIndex(textSourceCharacterIndex); 
        } 

        //------------------------------------------------------------------- 
        // TextFormatterHost context, object responsible for providing
        // formatting information.
        //--------------------------------------------------------------------
        internal LineBase Context; 

        //------------------------------------------------------------------- 
        // TextFormatter. 
        //-------------------------------------------------------------------
        internal TextFormatter TextFormatter; 
    }

}

// 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