object MathML.MathMLVisitor.Visit(MathMLScriptElement e, object args) { MathMLElement c = (MathMLElement)args; switch (selection) { case SelectionType.Prev: { if (c == e.SubScript || c == e.SuperScript) { selection = SelectionType.End; return(e.Base.Accept(this, e)); } else { MathMLElement p = e.ParentNode as MathMLElement; return(p != null?p.Accept(this, e) : null); } } case SelectionType.Next: { if (c == e.Base) { MathMLElement next = e.SuperScript != null ? e.SuperScript : e.SubScript; selection = SelectionType.Start; return(next != null?next.Accept(this, null) : null); } else { MathMLElement p = e.ParentNode as MathMLElement; return(p != null?p.Accept(this, e) : null); } } case SelectionType.End: { MathMLElement end = e.SuperScript != null ? e.SuperScript : (e.SubScript != null ? e.SubScript : e.Base); return(end.Accept(this, null)); } case SelectionType.Start: { return(e.Base.Accept(this, null)); } default: { return(null); } } }
object MathML.MathMLVisitor.Visit(MathMLScriptElement e, object args) { return ((Area)formatter.Visit(e, args)).BoundingBox; }
object MathML.MathMLVisitor.Visit(MathMLScriptElement e, object args) { return(((Area)formatter.Visit(e, args)).BoundingBox); }