// Token: 0x06003D0E RID: 15630 RVA: 0x0011B918 File Offset: 0x00119B18 public override void DoCore() { base.VerifyTreeContentHashCode(); TextPointer navigator = new TextPointer(base.TextContainer, base.SymbolOffset, LogicalDirection.Forward); for (TextTreeDeleteContentUndoUnit.ContentContainer contentContainer = this._content; contentContainer != null; contentContainer = contentContainer.NextContainer) { contentContainer.Do(navigator); } }
// Token: 0x06003D15 RID: 15637 RVA: 0x0011BB88 File Offset: 0x00119D88 private TextTreeNode CopyElementNode(TextTreeTextElementNode elementNode, out TextTreeDeleteContentUndoUnit.ContentContainer container) { if (elementNode.TextElement is Table) { container = new TextTreeDeleteContentUndoUnit.TableElementContentContainer(elementNode.TextElement as Table, TextTreeUndoUnit.GetPropertyRecordArray(elementNode.TextElement), this.CopyContent((TextTreeNode)elementNode.GetFirstContainedNode(), null)); } else { container = new TextTreeDeleteContentUndoUnit.ElementContentContainer(elementNode.TextElement.GetType(), TextTreeUndoUnit.GetPropertyRecordArray(elementNode.TextElement), elementNode.TextElement.Resources, this.CopyContent((TextTreeNode)elementNode.GetFirstContainedNode(), null)); } return((TextTreeNode)elementNode.GetNextNode()); }
private TextTreeNode CopyObjectNode(TextTreeObjectNode objectNode, out TextTreeDeleteContentUndoUnit.ContentContainer container) { if (SecurityHelper.CheckUnmanagedCodePermission()) { string xml = XamlWriter.Save(objectNode.EmbeddedElement); container = new TextTreeDeleteContentUndoUnit.ObjectContentContainer(xml, objectNode.EmbeddedElement); } else { container = new TextTreeDeleteContentUndoUnit.ObjectContentContainer(null, null); } return((TextTreeNode)objectNode.GetNextNode()); }
// Token: 0x06008609 RID: 34313 RVA: 0x0024B804 File Offset: 0x00249A04 internal override void Do(TextPointer navigator) { TextElement textElement = (TextElement)Activator.CreateInstance(this._elementType); textElement.Reposition(navigator, navigator); navigator.MoveToNextContextPosition(LogicalDirection.Backward); navigator.TextContainer.SetValues(navigator, TextTreeUndoUnit.ArrayToLocalValueEnumerator(this._localValues)); textElement.Resources = this._resources; for (TextTreeDeleteContentUndoUnit.ContentContainer contentContainer = this._childContainer; contentContainer != null; contentContainer = contentContainer.NextContainer) { contentContainer.Do(navigator); } navigator.MoveToNextContextPosition(LogicalDirection.Forward); }
// Token: 0x06003D12 RID: 15634 RVA: 0x0011BA44 File Offset: 0x00119C44 private TextTreeDeleteContentUndoUnit.ContentContainer CopyContent(TextTreeNode node, TextTreeNode haltNode) { TextTreeDeleteContentUndoUnit.ContentContainer result = null; TextTreeDeleteContentUndoUnit.ContentContainer contentContainer = null; while (node != haltNode && node != null) { TextTreeTextNode textTreeTextNode = node as TextTreeTextNode; TextTreeDeleteContentUndoUnit.ContentContainer contentContainer2; if (textTreeTextNode != null) { node = this.CopyTextNode(textTreeTextNode, haltNode, out contentContainer2); } else { TextTreeObjectNode textTreeObjectNode = node as TextTreeObjectNode; if (textTreeObjectNode != null) { node = this.CopyObjectNode(textTreeObjectNode, out contentContainer2); } else { Invariant.Assert(node is TextTreeTextElementNode, "Unexpected TextTreeNode type!"); TextTreeTextElementNode elementNode = (TextTreeTextElementNode)node; node = this.CopyElementNode(elementNode, out contentContainer2); } } if (contentContainer == null) { result = contentContainer2; } else { contentContainer.NextContainer = contentContainer2; } contentContainer = contentContainer2; } return(result); }
// Token: 0x0600860A RID: 34314 RVA: 0x0024B877 File Offset: 0x00249A77 internal TableElementContentContainer(Table table, PropertyRecord[] localValues, TextTreeDeleteContentUndoUnit.ContentContainer childContainer) : base(table.GetType(), localValues, table.Resources, childContainer) { this._cpTable = table.TextContainer.Start.GetOffsetToPosition(table.ContentStart); this._columns = TextTreeDeleteContentUndoUnit.SaveColumns(table); }
// Token: 0x06008608 RID: 34312 RVA: 0x0024B7DC File Offset: 0x002499DC internal ElementContentContainer(Type elementType, PropertyRecord[] localValues, ResourceDictionary resources, TextTreeDeleteContentUndoUnit.ContentContainer childContainer) { this._elementType = elementType; this._localValues = localValues; this._childContainer = childContainer; this._resources = resources; }
// Token: 0x06003D13 RID: 15635 RVA: 0x0011BAC8 File Offset: 0x00119CC8 private TextTreeNode CopyTextNode(TextTreeTextNode textNode, TextTreeNode haltNode, out TextTreeDeleteContentUndoUnit.ContentContainer container) { Invariant.Assert(textNode != haltNode, "Expect at least one node to copy!"); int symbolOffset = textNode.GetSymbolOffset(base.TextContainer.Generation); int num = 0; SplayTreeNode nextNode; do { num += textNode.SymbolCount; nextNode = textNode.GetNextNode(); textNode = (nextNode as TextTreeTextNode); }while (textNode != null && textNode != haltNode); char[] array = new char[num]; TextTreeText.ReadText(base.TextContainer.RootTextBlock, symbolOffset, num, array, 0); container = new TextTreeDeleteContentUndoUnit.TextContentContainer(array); return((TextTreeNode)nextNode); }