X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_exfuncinset.C;h=667b4461e63db1862893bc3a9187e525e09202e5;hb=46880e2b9b49632c56bab2377ce9a3c826cf8d1d;hp=c258e2b0b3f5df2f531fbe90ac2fdfdfb60b71aa;hpb=33a28bdc9cdf978601d5d40b693f13924801ad9e;p=lyx.git diff --git a/src/mathed/math_exfuncinset.C b/src/mathed/math_exfuncinset.C index c258e2b0b3..667b4461e6 100644 --- a/src/mathed/math_exfuncinset.C +++ b/src/mathed/math_exfuncinset.C @@ -5,30 +5,34 @@ #include "math_mathmlstream.h" #include "math_streamstr.h" -using std::ostream; - MathExFuncInset::MathExFuncInset(string const & name) : MathNestInset(1), name_(name) {} +MathExFuncInset::MathExFuncInset(string const & name, MathArray const & ar) + : MathNestInset(1), name_(name) +{ + cell(0) = ar; +} + + MathInset * MathExFuncInset::clone() const { return new MathExFuncInset(*this); } -void MathExFuncInset::metrics(MathMetricsInfo const & mi) const +void MathExFuncInset::metrics(MathMetricsInfo & mi) const { - mi_ = mi; - mathed_string_dim(LM_TC_TEXTRM, mi_, name_, ascent_, descent_, width_); + mathed_string_dim(mi.base.font, name_, ascent_, descent_, width_); } -void MathExFuncInset::draw(Painter & pain, int x, int y) const -{ - drawStr(pain, LM_TC_TEXTRM, mi_, x, y, name_); +void MathExFuncInset::draw(MathPainterInfo & pi, int x, int y) const +{ + drawStrBlack(pi, x, y, name_); } @@ -40,7 +44,38 @@ void MathExFuncInset::normalize(NormalStream & os) const void MathExFuncInset::maplize(MapleStream & os) const { - os << name_ << '(' << cell(0) << ')'; + if (name_ == "det") + os << "linalg[det](" << cell(0) << ')'; + else + os << name_ << '(' << cell(0) << ')'; +} + + +string asMathematicaName(string const & name) +{ + if (name == "sin") return "Sin"; + if (name == "sinh") return "Sinh"; + if (name == "arcsin") return "ArcSin"; + if (name == "cos") return "Cos"; + if (name == "cosh") return "Cosh"; + if (name == "arcos") return "ArcCos"; + if (name == "tan") return "Tan"; + if (name == "tanh") return "Tanh"; + if (name == "arctan") return "ArcTan"; + if (name == "cot") return "Cot"; + if (name == "coth") return "Coth"; + if (name == "csc") return "Csc"; + if (name == "sec") return "Sec"; + if (name == "exp") return "Exp"; + if (name == "log") return "Log"; + if (name == "ln" ) return "Log"; + return name; +} + + +void MathExFuncInset::mathematicize(MathematicaStream & os) const +{ + os << asMathematicaName(name_) << '[' << cell(0) << ']'; } @@ -60,5 +95,3 @@ void MathExFuncInset::write(WriteStream & os) const { os << '\\' << name_ << '{' << cell(0) << '}'; } - -