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
- SqlBulkCopy.cs
- CatalogZone.cs
- MenuItemStyle.cs
- CheckBoxStandardAdapter.cs
- SafeLocalMemHandle.cs
- BaseTemplateBuildProvider.cs
- RoleExceptions.cs
- OleDbException.cs
- CanonicalizationDriver.cs
- ContentControl.cs
- ObjectStateEntry.cs
- _CommandStream.cs
- EncodingNLS.cs
- PasswordBoxAutomationPeer.cs
- Scene3D.cs
- GenericFlowSwitchHelper.cs
- Transform3DGroup.cs
- NativeMethods.cs
- MSHTMLHostUtil.cs
- NamespaceInfo.cs
- RoutedPropertyChangedEventArgs.cs
- SslStreamSecurityUpgradeProvider.cs
- InstanceKey.cs
- DrawListViewItemEventArgs.cs
- XmlC14NWriter.cs
- SpeechSeg.cs
- Image.cs
- FrugalList.cs
- TypePresenter.xaml.cs
- RequestCachingSection.cs
- CultureInfoConverter.cs
- LayoutTable.cs
- TrackingMemoryStream.cs
- HtmlControl.cs
- SqlUtils.cs
- XmlSerializerSection.cs
- HttpRequestCacheValidator.cs
- CommandExpr.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- ValueUtilsSmi.cs
- DataSysAttribute.cs
- KeyPressEvent.cs
- Version.cs
- MexHttpsBindingElement.cs
- GridEntry.cs
- StorageSetMapping.cs
- FloaterParaClient.cs
- GenerateHelper.cs
- WindowCollection.cs
- InternalsVisibleToAttribute.cs
- XmlProcessingInstruction.cs
- TileBrush.cs
- DocumentApplicationJournalEntry.cs
- RSAPKCS1SignatureDeformatter.cs
- MimeTypeMapper.cs
- EncodingNLS.cs
- HtmlTableRow.cs
- XmlSerializerAssemblyAttribute.cs
- SmtpDigestAuthenticationModule.cs
- PipeException.cs
- ActivityIdHeader.cs
- RubberbandSelector.cs
- TextEditorThreadLocalStore.cs
- HyperLinkField.cs
- DataGridViewUtilities.cs
- UInt32.cs
- ComponentRenameEvent.cs
- GlobalProxySelection.cs
- FactoryMaker.cs
- HandlerBase.cs
- TextTreeRootNode.cs
- GeneralTransform3DGroup.cs
- AnimationLayer.cs
- AccessDataSourceView.cs
- InputLanguageSource.cs
- TimelineClockCollection.cs
- SafeTimerHandle.cs
- StandardBindingCollectionElement.cs
- StringUtil.cs
- Bits.cs
- MenuItemStyleCollection.cs
- DependencyObjectPropertyDescriptor.cs
- BitmapMetadataBlob.cs
- FontWeight.cs
- PathTooLongException.cs
- GlobalAllocSafeHandle.cs
- InvalidCommandTreeException.cs
- TypeReference.cs
- RawStylusInputCustomDataList.cs
- HttpProfileGroupBase.cs
- SoapMessage.cs
- TrustManagerMoreInformation.cs
- SQLBinaryStorage.cs
- LiteralTextParser.cs
- UnsafeNativeMethods.cs
- SettingsPropertyIsReadOnlyException.cs
- SynchronizationHandlesCodeDomSerializer.cs
- SemanticKeyElement.cs
- uribuilder.cs
- DBSqlParserColumn.cs