X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_amsarrayinset.C;h=6fdca3e708c506c3b696f7143b19f6df61e091b0;hb=edbef46cd7865dab72ab6b503d62e2492479d297;hp=4fb7011b7c7b894fc5e523da6af7f13578edd666;hpb=e70e507d01205cd2b1f98dbaa1ade487628e65ce;p=lyx.git diff --git a/src/mathed/math_amsarrayinset.C b/src/mathed/math_amsarrayinset.C index 4fb7011b7c..6fdca3e708 100644 --- a/src/mathed/math_amsarrayinset.C +++ b/src/mathed/math_amsarrayinset.C @@ -1,15 +1,23 @@ -#include +/** + * \file math_amsarrayinset.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. + */ -#ifdef __GNUG__ -#pragma implementation -#endif +#include #include "math_amsarrayinset.h" +#include "math_data.h" #include "math_mathmlstream.h" -#include "math_support.h" #include "math_streamstr.h" #include "math_support.h" -#include "Lsstream.h" + +using std::string; +using std::auto_ptr; MathAMSArrayInset::MathAMSArrayInset(string const & name, int m, int n) @@ -22,9 +30,9 @@ MathAMSArrayInset::MathAMSArrayInset(string const & name) {} -MathInset * MathAMSArrayInset::clone() const +auto_ptr MathAMSArrayInset::clone() const { - return new MathAMSArrayInset(*this); + return auto_ptr(new MathAMSArrayInset(*this)); } @@ -32,7 +40,15 @@ char const * MathAMSArrayInset::name_left() const { if (name_ == "bmatrix") return "["; - return "("; + if (name_ == "Bmatrix") + return "{"; + if (name_ == "vmatrix") + return "|"; + if (name_ == "Vmatrix") + return "Vert"; + if (name_ == "pmatrix") + return "("; + return "."; } @@ -40,48 +56,50 @@ char const * MathAMSArrayInset::name_right() const { if (name_ == "bmatrix") return "]"; - return ")"; + if (name_ == "Bmatrix") + return "}"; + if (name_ == "vmatrix") + return "|"; + if (name_ == "Vmatrix") + return "Vert"; + if (name_ == "pmatrix") + return ")"; + return "."; } -void MathAMSArrayInset::metrics(MathMetricsInfo const & st) const +void MathAMSArrayInset::metrics(MetricsInfo & mi, Dimension & dim) const { - MathMetricsInfo mi = st; - if (mi.style == LM_ST_DISPLAY) - mi.style = LM_ST_TEXT; - MathGridInset::metrics(mi); - width_ += 12; + MetricsInfo m = mi; + if (m.base.style == LM_ST_DISPLAY) + m.base.style = LM_ST_TEXT; + MathGridInset::metrics(m, dim); + dim.wid += 12; + dim_ = dim; } -void MathAMSArrayInset::draw(Painter & pain, int x, int y) const -{ - MathGridInset::draw(pain, x + 6, y); - int yy = y - ascent_; - mathed_draw_deco(pain, x + 1, yy, 5, height(), name_left()); - mathed_draw_deco(pain, x + width_ - 6, yy, 5, height(), name_right()); +void MathAMSArrayInset::draw(PainterInfo & pi, int x, int y) const +{ + MathGridInset::draw(pi, x + 6, y); + int const yy = y - dim_.ascent(); + mathed_draw_deco(pi, x + 1, yy, 5, dim_.height(), name_left()); + mathed_draw_deco(pi, x + dim_.width() - 6, yy, 5, dim_.height(), name_right()); + setPosCache(pi, x, y); } void MathAMSArrayInset::write(WriteStream & os) const { - os << "\\begin{" << name_ << "}"; + os << "\\begin{" << name_ << '}'; MathGridInset::write(os); - os << "\\end{" << name_ << "}\n"; + os << "\\end{" << name_ << '}'; } void MathAMSArrayInset::normalize(NormalStream & os) const { - os << "[" << name_ << " "; + os << '[' << name_ << ' '; MathGridInset::normalize(os); - os << "]"; -} - - -void MathAMSArrayInset::maplize(MapleStream & os) const -{ - os << name_ << "("; - MathGridInset::maplize(os); - os << ")"; + os << ']'; }