X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_exintinset.C;h=e41dad31346ccb8ff075bd239999bab548313280;hb=12ac7f339e14c4f76a24f45a21c0697303099145;hp=212e87eecdda0be27ccb9a42864d849a9d8ccaa9;hpb=482c04ecca95e00aaa649dc74f33ca33ad864e89;p=lyx.git diff --git a/src/mathed/math_exintinset.C b/src/mathed/math_exintinset.C index 212e87eecd..e41dad3134 100644 --- a/src/mathed/math_exintinset.C +++ b/src/mathed/math_exintinset.C @@ -1,7 +1,17 @@ +/** + * \file math_exintinset.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author André Pönitz + * + * Full author contact details are available in file CREDITS. + */ + #include #include "math_exintinset.h" -#include "math_support.h" +#include "math_data.h" #include "math_mathmlstream.h" #include "math_streamstr.h" #include "math_symbolinset.h" @@ -9,6 +19,9 @@ #include + +using std::string; +using std::auto_ptr; using std::endl; @@ -22,9 +35,9 @@ MathExIntInset::MathExIntInset(string const & name) // 3 - upper -MathInset * MathExIntInset::clone() const +auto_ptr MathExIntInset::clone() const { - return new MathExIntInset(*this); + return auto_ptr(new MathExIntInset(*this)); } @@ -49,19 +62,19 @@ void MathExIntInset::normalize(NormalStream & os) const } -void MathExIntInset::metrics(MathMetricsInfo const &) const +void MathExIntInset::metrics(MetricsInfo &, Dimension &) const { lyxerr << "should not happen" << endl; } -void MathExIntInset::draw(Painter &, int, int) const +void MathExIntInset::draw(PainterInfo &, int, int) const { lyxerr << "should not happen" << endl; } -void MathExIntInset::maplize(MapleStream & os) const +void MathExIntInset::maple(MapleStream & os) const { os << symbol_ << '('; if (cell(0).size()) @@ -75,6 +88,43 @@ void MathExIntInset::maplize(MapleStream & os) const } +void MathExIntInset::maxima(MaximaStream & os) const +{ + if ( symbol_ == "int" ) + os << "integrate("; + 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::mathematica(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 { boost::scoped_ptr sym(new MathSymbolInset(symbol_));