示例#1
0
 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;
 }
示例#2
0
 //
 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;
 }