TextTreeInsertUndoUnit.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 / System / Windows / Documents / TextTreeInsertUndoUnit.cs / 1305600 / TextTreeInsertUndoUnit.cs

                            //---------------------------------------------------------------------------- 
//
// File: TextTreeInsertUndoUnit.cs
//
// Description: Undo unit for TextContainer.InsertText and InsertEmbeddedObject calls. 
//
// History: 
//  03/03/2004 : [....] - Created 
//
//--------------------------------------------------------------------------- 

using System;
using MS.Internal;
 
namespace System.Windows.Documents
{ 
    // Undo unit for TextContainer.InsertText and InsertEmbeddedObject calls. 
    internal class TextTreeInsertUndoUnit : TextTreeUndoUnit
    { 
        //-----------------------------------------------------
        //
        //  Constructors
        // 
        //-----------------------------------------------------
 
        #region Constructors 

        // Create a new undo unit instance. 
        // symbolOffset and symbolCount track the offset of the inserted content
        // and its symbol count, respectively.
        internal TextTreeInsertUndoUnit(TextContainer tree, int symbolOffset, int symbolCount) : base(tree, symbolOffset)
        { 
            Invariant.Assert(symbolCount > 0, "Creating no-op insert undo unit!");
 
            _symbolCount = symbolCount; 
        }
 
        #endregion Constructors

        //------------------------------------------------------
        // 
        //  Public Methods
        // 
        //----------------------------------------------------- 

        #region Public Methods 

        // Called by the undo manager.  Restores tree state to its condition
        // when the unit was created.  Assumes the tree state matches conditions
        // just after the unit was created. 
        public override void DoCore()
        { 
            TextPointer start; 
            TextPointer end;
 
            VerifyTreeContentHashCode();

            start = new TextPointer(this.TextContainer, this.SymbolOffset, LogicalDirection.Forward);
            end = new TextPointer(this.TextContainer, this.SymbolOffset + _symbolCount, LogicalDirection.Forward); 

            this.TextContainer.DeleteContentInternal(start, end); 
        } 

        #endregion Public Methods 

        //------------------------------------------------------
        //
        //  Private Fields 
        //
        //------------------------------------------------------ 
 
        #region Private Fields
 
        // Count of symbols to remove.
        private readonly int _symbolCount;

        #endregion Private Fields 
    }
} 
 

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