3 * \file InsetMathExInt.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef MATH_EXINTINSET_H
13 #define MATH_EXINTINSET_H
16 // \int_l^u f(x) dx in one block (as opposed to 'f','(','x',')' or 'f','x')
17 // or \sum, \prod... for interfacing external programs
19 #include "InsetMathNest.h"
25 // cell(0) is stuff before the 'd'
26 // cell(1) is the stuff after the 'd'
27 // cell(2) is the lower bound
28 // cell(3) is the upper bound
30 // cell(0) is the main body
31 // cell(1) is the index (e.g., i), if the lower bound is "i = ..."
32 // or the whole lower bound if not
33 // cell(2) is what follows the "=" in the first case
34 // cell(3) is the upper bound
35 class InsetMathExInt : public InsetMathNest {
38 explicit InsetMathExInt(Buffer * buf, docstring const & name_);
40 void symbol(docstring const &);
42 void metrics(MetricsInfo & mi, Dimension & dim) const override;
44 void draw(PainterInfo &, int x, int y) const override;
47 void normalize(NormalStream &) const override;
49 void maxima(MaximaStream &) const override;
51 void maple(MapleStream &) const override;
53 void mathematica(MathematicaStream &) const override;
55 void mathmlize(MathMLStream &) const override;
57 void htmlize(HtmlStream &) const override;
59 void write(TeXMathStream & os) const override;
61 InsetCode lyxCode() const override { return MATH_EXINT_CODE; }
63 Inset * clone() const override;
65 bool hasScripts() const;