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; }
// public Node CarriageReturn (Node node, ref bool wasSplit) { if ((((node.literalText == null) || (node.InternalMark <= 0))) || (node.InternalMark >= node.LiteralLength)) { return node; } if (((node.parent_ != null)) && ((node.parent_.numChildren == node.parent_.type_.maxChilds) || (node.parent_.type_.type == ElementType.Mmultiscripts))) { node = this.WrapInRowInplace (node); } Node newNode = new Node (node.xmlTagName); node.CopyProperties (newNode); newNode.InternalMark = 0; newNode.literalText = node.literalText.Substring (node.InternalMark, node.literalText.Length - node.InternalMark); node.literalText = node.literalText.Substring (0, node.InternalMark); node.AppendNode (newNode); node.parent_.UpdateChildrenIndices (); node.parent_.UpdateLevel (); newNode.InternalMark = 0; wasSplit = true; return newNode; }