private Node create(Node node, Node selectedNode, Node lastSelectedNode) { Node n = new Node(); n.tagDeleted = node.tagDeleted; n.tokenType = node.tokenType; n.xmlTagName = node.xmlTagName; n.namespaceURI = node.namespaceURI; n.isVisible = node.isVisible; n.isGlyph = node.isGlyph; n.skip = node.skip; n.literalText = node.literalText; n.literalCaret = node.literalCaret; n.literalStart = node.literalStart; n.yOffset = node.yOffset; n.displayStyle = node.displayStyle; n.glyph = node.glyph; n.scriptLevel_ = node.scriptLevel_; n.type_ = node.type_; if (node.attrs != null) { n.attrs = new AttributeList(); node.attrs.CopyTo(n.attrs); } n.FontStyle = node.FontStyle; if (node.style_ != null) { n.style_ = new StyleAttributes(); node.style_.CopyTo(n.style_); } if (node == selectedNode) { this.selected_ = n; } if (node == lastSelectedNode) { this.lastSel_ = n; } if (node.HasChildren()) { NodesList list = node.GetChildrenNodes(); int count = list.Count; for (int i = 0; i < count; i++) { Node c = list.Get(i); Node child = this.create(c, selectedNode, lastSelectedNode); if (child != null) { n.AdoptChild(child); } } } return n; }
private Node CreateChildGlyph(string sUnicode, Node node) { Node entityNode = null; try { entityNode = new Node(); Node operatorNode = new Node(); operatorNode.type_ = new global::Nodes.Type("mo", ElementType.Mo, 0, 0); entityNode.type_ = new global::Nodes.Type("entity", ElementType.Entity, 0, 0); Glyph glyph = null; glyph = this.entityManager.ByUnicode(sUnicode); if (glyph != null) { entityNode.literalText = ""; entityNode.literalText = entityNode.literalText + glyph.CharValue; entityNode.fontFamily = glyph.FontFamily; entityNode.glyph = glyph; entityNode.xmlTagName = glyph.Name; entityNode.box = new Box_entity(); operatorNode.box = new Box_Mo(); node.CopyProperties(operatorNode); entityNode.scriptLevel_ = node.scriptLevel_; operatorNode.AdoptChild(entityNode); this.MeasureBox(entityNode, node.style_); } } catch { entityNode = null; } return entityNode; }
// private Node WrapInMrow (Node node) { Node row = null; try { row = this.MakeNode ("mrow"); node.AdoptChild (row); node.UpdateLevel (); } catch { } return row; }
// private bool ReParent (Node node, Node newParent) { try { Node oldParent = null; Node prev = null; Node next = null; oldParent = node.parent_; prev = node.prevSibling; next = node.nextSibling; if ((next == null) && (prev == null)) { oldParent.firstChild = null; oldParent.lastChild = null; oldParent.numChildren = 0; } else if ((next != null) && (prev != null)) { next.prevSibling = prev; prev.nextSibling = next; oldParent.numChildren--; } else if ((next != null) && (prev == null)) { next.prevSibling = null; oldParent.firstChild = next; oldParent.numChildren--; } else if ((next == null) && (prev != null)) { prev.nextSibling = null; oldParent.lastChild = prev; oldParent.numChildren--; } node.level = oldParent.level + 1; oldParent.UpdateChildrenIndices (); oldParent.UpdateLevel (); node.prevSibling = null; node.nextSibling = null; node.parent_ = null; newParent.AdoptChild (node); return true; } catch { } return false; }