X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_exintinset.C;h=47a44edde611ce56eea5fcf6ac226390efc40b3f;hb=d359dd8fca52c4f0100f7cf4bf636113c5c4e49f;hp=7ebd2b9ddcde33aa126287fd5282bb420c364c35;hpb=0daba49b1d7493cbf76658314b7459b51f870081;p=lyx.git diff --git a/src/mathed/math_exintinset.C b/src/mathed/math_exintinset.C index 7ebd2b9ddc..47a44edde6 100644 --- a/src/mathed/math_exintinset.C +++ b/src/mathed/math_exintinset.C @@ -1,16 +1,26 @@ +#include + #include "math_exintinset.h" -#include "support.h" -#include "debug.h" +#include "math_support.h" #include "math_mathmlstream.h" +#include "math_streamstr.h" #include "math_symbolinset.h" +#include "debug.h" + +#include + +using std::endl; -MathExIntInset::MathExIntInset(MathScriptInset const & scripts, - MathArray const & core, MathArray const & diff) - : int_(new MathSymbolInset("int")), - scripts_(scripts), core_(core), diff_(diff) +MathExIntInset::MathExIntInset(string const & name) + : MathNestInset(4), symbol_(name) {} +// 0 - core +// 1 - diff +// 2 - lower +// 3 - upper + MathInset * MathExIntInset::clone() const { @@ -18,37 +28,87 @@ MathInset * MathExIntInset::clone() const } -void MathExIntInset::write(MathWriteInfo & os) const +void MathExIntInset::symbol(string const & symbol) +{ + symbol_ = symbol; +} + + +bool MathExIntInset::hasScripts() const { - scripts_.write(int_.nucleus(), os); - os << core_ << "d" << diff_; + // take empty upper bound as "no scripts" + return !cell(3).empty(); } -void MathExIntInset::writeNormal(NormalStream & os) const + +void MathExIntInset::normalize(NormalStream & os) const { - //os << "[int " << scripts_ << ' ' << core_ << ' ' << diff_ << ']' + os << '[' << symbol_ << ' ' << cell(0) << ' ' << cell(1) << ' ' + << cell(2) << ' ' << cell(3) << ']'; } -void MathExIntInset::metrics(MathMetricsInfo const &) const +void MathExIntInset::metrics(MathMetricsInfo &) const { - lyxerr << "should not happen\n"; + lyxerr << "should not happen" << endl; } -void MathExIntInset::draw(Painter &, int, int) const -{ - lyxerr << "should not happen\n"; +void MathExIntInset::draw(MathPainterInfo &, int, int) const +{ + lyxerr << "should not happen" << endl; } void MathExIntInset::maplize(MapleStream & os) const { - //os << name_.c_str() << '(' << cell(0) << ')'; + os << symbol_ << '('; + if (cell(0).size()) + os << cell(0); + else + os << '1'; + os << ',' << cell(1); + if (hasScripts()) + os << '=' << cell(2) << ".." << cell(3); + os << ')'; +} + +void MathExIntInset::mathematicize(MathematicaStream & os) const +{ + if ( symbol_ == "int" ) + os << "Integrate["; + else + if (symbol_ == "sum") + os << "Sum["; + else + os << symbol_ << '['; + + if (cell(0).size()) + os << cell(0) << ','; + else + os << '1' << ','; + if (hasScripts()) + os << '{' << cell(1) << ',' << cell(2) << ',' << cell(3) << "}]"; + else + os << cell(1) << ']'; } + void MathExIntInset::mathmlize(MathMLStream & os) const { - //os << name_.c_str() << '(' << cell(0) << ')'; + boost::scoped_ptr sym(new MathSymbolInset(symbol_)); + //if (hasScripts()) + // mathmlize(sym, os); + //else + sym->mathmlize(os); + os << cell(0) << "" + << MTag("mrow") << "" + << cell(1) << ETag("mrow"); +} + + +void MathExIntInset::write(WriteStream &) const +{ + lyxerr << "should not happen" << endl; }