X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_exintinset.C;h=e41dad31346ccb8ff075bd239999bab548313280;hb=12ac7f339e14c4f76a24f45a21c0697303099145;hp=0a8c4979e55c52d60b31ebbb5e951d7d83a845cb;hpb=a31e65aa9f5dba8299d95d3d44473b5115172f83;p=lyx.git diff --git a/src/mathed/math_exintinset.C b/src/mathed/math_exintinset.C index 0a8c4979e5..e41dad3134 100644 --- a/src/mathed/math_exintinset.C +++ b/src/mathed/math_exintinset.C @@ -1,9 +1,29 @@ +/** + * \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" #include "debug.h" +#include + + +using std::string; +using std::auto_ptr; +using std::endl; + MathExIntInset::MathExIntInset(string const & name) : MathNestInset(4), symbol_(name) @@ -15,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)); } @@ -37,29 +57,29 @@ bool MathExIntInset::hasScripts() const void MathExIntInset::normalize(NormalStream & os) const { - os << '[' << symbol_.c_str() << ' ' << cell(0) << ' ' << cell(1) << ' ' + os << '[' << symbol_ << ' ' << cell(0) << ' ' << cell(1) << ' ' << cell(2) << ' ' << cell(3) << ']'; } -void MathExIntInset::metrics(MathMetricsInfo const &) const +void MathExIntInset::metrics(MetricsInfo &, Dimension &) 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(PainterInfo &, int, int) const +{ + lyxerr << "should not happen" << endl; } -void MathExIntInset::maplize(MapleStream & os) const +void MathExIntInset::maple(MapleStream & os) const { - os << symbol_.c_str() << '('; + os << symbol_ << '('; if (cell(0).size()) os << cell(0); - else + else os << '1'; os << ',' << cell(1); if (hasScripts()) @@ -68,14 +88,50 @@ 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 { - MathSymbolInset * sym = new MathSymbolInset(symbol_.c_str()); + boost::scoped_ptr sym(new MathSymbolInset(symbol_)); //if (hasScripts()) // mathmlize(sym, os); - //else + //else sym->mathmlize(os); - delete sym; os << cell(0) << "" << MTag("mrow") << "" << cell(1) << ETag("mrow"); @@ -84,6 +140,5 @@ void MathExIntInset::mathmlize(MathMLStream & os) const void MathExIntInset::write(WriteStream &) const { - lyxerr << "should not happen\n"; + lyxerr << "should not happen" << endl; } -