コード例 #1
0
ファイル: NodesInfo.cs プロジェクト: xuchuansheng/GenXSource
 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;
 }
コード例 #2
0
ファイル: Painter.cs プロジェクト: xuchuansheng/GenXSource
 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;
 }
コード例 #3
0
 //
 private Node WrapInMrow (Node node)
 {
     Node row = null;
     try
     {
         row = this.MakeNode ("mrow");
         node.AdoptChild (row);
         node.UpdateLevel ();
     }
     catch
     {
     }
     return row;
 }
コード例 #4
0
 //
 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;
 }