Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Documents / TextTreeInsertElementUndoUnit.cs / 1 / TextTreeInsertElementUndoUnit.cs
//---------------------------------------------------------------------------- // // File: TextTreeInsertElementUndoUnit.cs // // Description: Undo unit for TextContainer.InsertElement calls. // // History: // 03/03/2004 : benwest - Created // //--------------------------------------------------------------------------- using System; using MS.Internal; namespace System.Windows.Documents { // Undo unit for TextContainer.InsertElement calls. internal class TextTreeInsertElementUndoUnit : TextTreeUndoUnit { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors // Creates a new undo unit instance. // symbolOffset should be just before the start edge of the TextElement to remove. // If deep is true, this unit will undo not only the scoping element // insert, but also all content scoped by the element. internal TextTreeInsertElementUndoUnit(TextContainer tree, int symbolOffset, bool deep) : base(tree, symbolOffset) { _deep = deep; } #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; TextElement element; VerifyTreeContentHashCode(); start = new TextPointer(this.TextContainer, this.SymbolOffset, LogicalDirection.Forward); Invariant.Assert(start.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.ElementStart, "TextTree undo unit out of [....] with TextTree."); element = start.GetAdjacentElementFromOuterPosition(LogicalDirection.Forward); if (_deep) { // Extract the element and its content. end = new TextPointer(this.TextContainer, element.TextElementNode, ElementEdge.AfterEnd); this.TextContainer.DeleteContentInternal(start, end); } else { // Just extract the element, not its content. this.TextContainer.ExtractElementInternal(element); } } #endregion Public Methods //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ #region Private Fields // If true, this unit tracks a TextElement and its scoped content. // Otherwise, this unit only tracks the TextElement. private readonly bool _deep; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // File: TextTreeInsertElementUndoUnit.cs // // Description: Undo unit for TextContainer.InsertElement calls. // // History: // 03/03/2004 : benwest - Created // //--------------------------------------------------------------------------- using System; using MS.Internal; namespace System.Windows.Documents { // Undo unit for TextContainer.InsertElement calls. internal class TextTreeInsertElementUndoUnit : TextTreeUndoUnit { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors // Creates a new undo unit instance. // symbolOffset should be just before the start edge of the TextElement to remove. // If deep is true, this unit will undo not only the scoping element // insert, but also all content scoped by the element. internal TextTreeInsertElementUndoUnit(TextContainer tree, int symbolOffset, bool deep) : base(tree, symbolOffset) { _deep = deep; } #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; TextElement element; VerifyTreeContentHashCode(); start = new TextPointer(this.TextContainer, this.SymbolOffset, LogicalDirection.Forward); Invariant.Assert(start.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.ElementStart, "TextTree undo unit out of [....] with TextTree."); element = start.GetAdjacentElementFromOuterPosition(LogicalDirection.Forward); if (_deep) { // Extract the element and its content. end = new TextPointer(this.TextContainer, element.TextElementNode, ElementEdge.AfterEnd); this.TextContainer.DeleteContentInternal(start, end); } else { // Just extract the element, not its content. this.TextContainer.ExtractElementInternal(element); } } #endregion Public Methods //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ #region Private Fields // If true, this unit tracks a TextElement and its scoped content. // Otherwise, this unit only tracks the TextElement. private readonly bool _deep; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataControlFieldCell.cs
- NetworkStream.cs
- ViewgenGatekeeper.cs
- BamlResourceSerializer.cs
- XmlQueryOutput.cs
- Models.cs
- MetadataArtifactLoaderCompositeResource.cs
- TreeNodeCollection.cs
- Pool.cs
- WebReferencesBuildProvider.cs
- ObjectItemCollection.cs
- TextCharacters.cs
- MatrixAnimationUsingPath.cs
- SelectedGridItemChangedEvent.cs
- QilCloneVisitor.cs
- LogicalExpressionEditor.cs
- ImageList.cs
- SiteMap.cs
- HttpRequest.cs
- HashRepartitionEnumerator.cs
- CompoundFileReference.cs
- ToggleProviderWrapper.cs
- cryptoapiTransform.cs
- TaskHelper.cs
- BitConverter.cs
- GeneratedCodeAttribute.cs
- OutputCacheEntry.cs
- FlagPanel.cs
- DiscardableAttribute.cs
- TcpConnectionPool.cs
- SizeAnimationUsingKeyFrames.cs
- Input.cs
- ProviderUtil.cs
- HttpServerUtilityWrapper.cs
- basecomparevalidator.cs
- Window.cs
- SqlSupersetValidator.cs
- ImmutablePropertyDescriptorGridEntry.cs
- FragmentNavigationEventArgs.cs
- ManualResetEvent.cs
- MouseBinding.cs
- TableLayoutSettings.cs
- WebBaseEventKeyComparer.cs
- _Connection.cs
- Msec.cs
- OleDbDataAdapter.cs
- WebPartVerbCollection.cs
- QilPatternVisitor.cs
- SiteIdentityPermission.cs
- X509SecurityToken.cs
- AlphabetConverter.cs
- SQLByte.cs
- RequestNavigateEventArgs.cs
- _NegotiateClient.cs
- XomlCompilerParameters.cs
- SetterBaseCollection.cs
- RequestStatusBarUpdateEventArgs.cs
- ManagedWndProcTracker.cs
- BeginEvent.cs
- BitmapEffectGroup.cs
- NativeCompoundFileAPIs.cs
- StorageEntityContainerMapping.cs
- XmlDataSourceView.cs
- Highlights.cs
- ProcessModelSection.cs
- ExpressionBinding.cs
- RadioButtonPopupAdapter.cs
- sqlmetadatafactory.cs
- EncodedStreamFactory.cs
- PatternMatcher.cs
- BinaryConverter.cs
- WebPartConnectionsCancelEventArgs.cs
- MonthChangedEventArgs.cs
- NativeMethods.cs
- CryptoApi.cs
- BroadcastEventHelper.cs
- PixelFormat.cs
- CompilerErrorCollection.cs
- StreamWithDictionary.cs
- LogAppendAsyncResult.cs
- HostDesigntimeLicenseContext.cs
- TokenCreationParameter.cs
- xmlglyphRunInfo.cs
- Stack.cs
- SqlConnectionManager.cs
- WmfPlaceableFileHeader.cs
- Drawing.cs
- HtmlTableRowCollection.cs
- DataListItemCollection.cs
- ImageSource.cs
- documentsequencetextcontainer.cs
- TransformCollection.cs
- Rectangle.cs
- MetaChildrenColumn.cs
- DataGridViewAdvancedBorderStyle.cs
- SQLInt64Storage.cs
- SegmentInfo.cs
- SubpageParagraph.cs
- SqlDataSourceTableQuery.cs
- LogLogRecordEnumerator.cs