TextTreeRootTextBlock.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Documents / TextTreeRootTextBlock.cs / 1 / TextTreeRootTextBlock.cs

                            //---------------------------------------------------------------------------- 
//
// File: TextTreeRootTextBlock.cs
//
// Description: The root node of a TextBlock splay tree. 
//
//--------------------------------------------------------------------------- 
 
using System;
using MS.Internal; 
using System.Collections;

namespace System.Windows.Documents
{ 
    // The root node of a TextBlock splay tree.
    internal class TextTreeRootTextBlock : SplayTreeNode 
    { 
        //-----------------------------------------------------
        // 
        //  Constructors
        //
        //-----------------------------------------------------
 
        #region Constructors
 
        // Creates a TextTreeRootTextBlock instance. 
        internal TextTreeRootTextBlock()
        { 
            TextTreeTextBlock block;

            // Allocate an initial block with just two characters -- one for
            // each edge of the root node.  The block will grow when/if 
            // additional content is added.
            block = new TextTreeTextBlock(2); 
            block.InsertAtNode(this, ElementEdge.AfterStart); 
        }
 
        #endregion Constructors

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

        #region Public Methods 

#if DEBUG
        // Debug-only ToString override.
        public override string ToString() 
        {
            return ("RootTextBlock Id=" + this.DebugId); 
        } 
#endif // DEBUG
 
        #endregion Public Methods

        //------------------------------------------------------
        // 
        //  Internal Properties
        // 
        //------------------------------------------------------ 

        #region Internal Properties 

        // The root node never has a parent node.
        internal override SplayTreeNode ParentNode
        { 
            get
            { 
                return null; 
            }
 
            set
            {
                Invariant.Assert(false, "Can't set ParentNode on TextBlock root!");
            } 
        }
 
        // Root node of a contained tree, if any. 
        internal override SplayTreeNode ContainedNode
        { 
            get
            {
                return _containedNode;
            } 

            set 
            { 
                _containedNode = (TextTreeTextBlock)value;
            } 
        }

        // The root node never has sibling nodes, so the LeftSymbolCount is a
        // constant zero. 
        internal override int LeftSymbolCount
        { 
            get 
            {
                return 0; 
            }

            set
            { 
                Invariant.Assert(false, "TextContainer root is never a sibling!");
            } 
        } 

        // Count of unicode chars of all siblings preceding this node. 
        // This property is only used by TextTreeNodes.
        internal override int LeftCharCount
        {
            get 
            {
                return 0; 
            } 

            set 
            {
                Invariant.Assert(value == 0);
            }
        } 

        // The root node never has siblings, so it never has child nodes. 
        internal override SplayTreeNode LeftChildNode 
        {
            get 
            {
                return null;
            }
 
            set
            { 
                Invariant.Assert(false, "TextBlock root never has sibling nodes!"); 
            }
        } 

        // The root node never has siblings, so it never has child nodes.
        internal override SplayTreeNode RightChildNode
        { 
            get
            { 
                return null; 
            }
 
            set
            {
                Invariant.Assert(false, "TextBlock root never has sibling nodes!");
            } 
        }
 
        // The tree generation.  Not used for TextTreeRootTextBlock. 
        internal override uint Generation
        { 
            get
            {
                return 0;
            } 

            set 
            { 
                Invariant.Assert(false, "TextTreeRootTextBlock does not track Generation!");
            } 
        }

        // Cached symbol offset.  The root node is always at offset zero.
        internal override int SymbolOffsetCache 
        {
            get 
            { 
                return 0;
            } 

            set
            {
                Invariant.Assert(false, "TextTreeRootTextBlock does not track SymbolOffsetCache!"); 
            }
        } 
 
        // Not used for TextTreeRootTextBlock.
        internal override int SymbolCount 
        {
            get
            {
                return -1; 
            }
 
            set 
            {
                Invariant.Assert(false, "TextTreeRootTextBlock does not track symbol count!"); 
            }
        }

        // Count of unicode chars covered by this node and any contained nodes. 
        // This property is only used by TextTreeNodes.
        internal override int IMECharCount 
        { 
            get
            { 
                return 0;
            }

            set 
            {
                Invariant.Assert(value == 0); 
            } 
        }
 
        #endregion Internal Properties

        //-----------------------------------------------------
        // 
        //  Private Fields
        // 
        //------------------------------------------------------ 

        #region Private Fields 

        // Root node of a contained tree, if any.
        private TextTreeTextBlock _containedNode;
 
        #endregion Private Fields
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------------- 
//
// File: TextTreeRootTextBlock.cs
//
// Description: The root node of a TextBlock splay tree. 
//
//--------------------------------------------------------------------------- 
 
using System;
using MS.Internal; 
using System.Collections;

namespace System.Windows.Documents
{ 
    // The root node of a TextBlock splay tree.
    internal class TextTreeRootTextBlock : SplayTreeNode 
    { 
        //-----------------------------------------------------
        // 
        //  Constructors
        //
        //-----------------------------------------------------
 
        #region Constructors
 
        // Creates a TextTreeRootTextBlock instance. 
        internal TextTreeRootTextBlock()
        { 
            TextTreeTextBlock block;

            // Allocate an initial block with just two characters -- one for
            // each edge of the root node.  The block will grow when/if 
            // additional content is added.
            block = new TextTreeTextBlock(2); 
            block.InsertAtNode(this, ElementEdge.AfterStart); 
        }
 
        #endregion Constructors

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

        #region Public Methods 

#if DEBUG
        // Debug-only ToString override.
        public override string ToString() 
        {
            return ("RootTextBlock Id=" + this.DebugId); 
        } 
#endif // DEBUG
 
        #endregion Public Methods

        //------------------------------------------------------
        // 
        //  Internal Properties
        // 
        //------------------------------------------------------ 

        #region Internal Properties 

        // The root node never has a parent node.
        internal override SplayTreeNode ParentNode
        { 
            get
            { 
                return null; 
            }
 
            set
            {
                Invariant.Assert(false, "Can't set ParentNode on TextBlock root!");
            } 
        }
 
        // Root node of a contained tree, if any. 
        internal override SplayTreeNode ContainedNode
        { 
            get
            {
                return _containedNode;
            } 

            set 
            { 
                _containedNode = (TextTreeTextBlock)value;
            } 
        }

        // The root node never has sibling nodes, so the LeftSymbolCount is a
        // constant zero. 
        internal override int LeftSymbolCount
        { 
            get 
            {
                return 0; 
            }

            set
            { 
                Invariant.Assert(false, "TextContainer root is never a sibling!");
            } 
        } 

        // Count of unicode chars of all siblings preceding this node. 
        // This property is only used by TextTreeNodes.
        internal override int LeftCharCount
        {
            get 
            {
                return 0; 
            } 

            set 
            {
                Invariant.Assert(value == 0);
            }
        } 

        // The root node never has siblings, so it never has child nodes. 
        internal override SplayTreeNode LeftChildNode 
        {
            get 
            {
                return null;
            }
 
            set
            { 
                Invariant.Assert(false, "TextBlock root never has sibling nodes!"); 
            }
        } 

        // The root node never has siblings, so it never has child nodes.
        internal override SplayTreeNode RightChildNode
        { 
            get
            { 
                return null; 
            }
 
            set
            {
                Invariant.Assert(false, "TextBlock root never has sibling nodes!");
            } 
        }
 
        // The tree generation.  Not used for TextTreeRootTextBlock. 
        internal override uint Generation
        { 
            get
            {
                return 0;
            } 

            set 
            { 
                Invariant.Assert(false, "TextTreeRootTextBlock does not track Generation!");
            } 
        }

        // Cached symbol offset.  The root node is always at offset zero.
        internal override int SymbolOffsetCache 
        {
            get 
            { 
                return 0;
            } 

            set
            {
                Invariant.Assert(false, "TextTreeRootTextBlock does not track SymbolOffsetCache!"); 
            }
        } 
 
        // Not used for TextTreeRootTextBlock.
        internal override int SymbolCount 
        {
            get
            {
                return -1; 
            }
 
            set 
            {
                Invariant.Assert(false, "TextTreeRootTextBlock does not track symbol count!"); 
            }
        }

        // Count of unicode chars covered by this node and any contained nodes. 
        // This property is only used by TextTreeNodes.
        internal override int IMECharCount 
        { 
            get
            { 
                return 0;
            }

            set 
            {
                Invariant.Assert(value == 0); 
            } 
        }
 
        #endregion Internal Properties

        //-----------------------------------------------------
        // 
        //  Private Fields
        // 
        //------------------------------------------------------ 

        #region Private Fields 

        // Root node of a contained tree, if any.
        private TextTreeTextBlock _containedNode;
 
        #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