X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_deliminset.C;h=5882a0cd0528f135211911a929115ce9a5db1ae9;hb=c649284611c4198c9d70be8a16d153cdf1ec0700;hp=ad5697e3a307785e729fb2d6739cfaf3e54b8af8;hpb=7ea7dabed1b72cc25dcbdc482ac006f2b61dacfd;p=lyx.git diff --git a/src/mathed/math_deliminset.C b/src/mathed/math_deliminset.C index ad5697e3a3..5882a0cd05 100644 --- a/src/mathed/math_deliminset.C +++ b/src/mathed/math_deliminset.C @@ -14,14 +14,46 @@ using std::max; +namespace { + +string convertDelimToLatexName(string const & name) +{ + if (name == "(") + return name; + if (name == "[") + return name; + if (name == ".") + return name; + if (name == ")") + return name; + if (name == "]") + return name; + if (name == "/") + return name; + if (name == "|") + return name; + return "\\" + name + " "; +} + +} + + MathDelimInset::MathDelimInset(string const & l, string const & r) : MathNestInset(1), left_(l), right_(r) {} +MathDelimInset::MathDelimInset + (string const & l, string const & r, MathArray const & ar) + : MathNestInset(1), left_(l), right_(r) +{ + cell(0) = ar; +} + + MathInset * MathDelimInset::clone() const -{ +{ return new MathDelimInset(*this); } @@ -51,11 +83,11 @@ int MathDelimInset::dw() const } -void MathDelimInset::metrics(MathMetricsInfo const & mi) const +void MathDelimInset::metrics(MathMetricsInfo & mi) const { xcell(0).metrics(mi); int a, d, w; - mathed_char_dim(LM_TC_VAR, mi, 'I', a, d, w); + mathed_char_dim(mi.base.font, 'I', a, d, w); int h0 = (a + d) / 2; int a0 = max(xcell(0).ascent(), a) - h0; int d0 = max(xcell(0).descent(), d) + h0; @@ -65,13 +97,13 @@ void MathDelimInset::metrics(MathMetricsInfo const & mi) const } -void MathDelimInset::draw(Painter & pain, int x, int y) const -{ +void MathDelimInset::draw(MathPainterInfo & pi, int x, int y) const +{ int const w = dw(); int const b = y - ascent_; - xcell(0).draw(pain, x + w + 4, y); - mathed_draw_deco(pain, x + 4, b, w, height(), left_); - mathed_draw_deco(pain, x + width() - w - 4, b, w, height(), right_); + xcell(0).draw(pi, x + w + 4, y); + mathed_draw_deco(pi, x + 4, b, w, height(), left_); + mathed_draw_deco(pi, x + width() - w - 4, b, w, height(), right_); } @@ -99,7 +131,7 @@ void MathDelimInset::maplize(MapleStream & os) const bool mat = cell(0).size() == 1 && cell(0).begin()->nucleus() && cell(0).begin()->nucleus()->asMatrixInset(); - if (mat) + if (mat) os << "linalg[det](" << cell(0) << ")"; else os << "abs(" << cell(0) << ")";