X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_dotsinset.C;h=8ab3afe6feec3c4f4b2d737091087297c96cef60;hb=3e93baac3cd18e27db3eb2a1fcaf90b25e0918a6;hp=fe37ae08ea3c383105417914130c4d92e349ceb0;hpb=df86edfddc6588fac299430220a06c0c539f72f5;p=lyx.git diff --git a/src/mathed/math_dotsinset.C b/src/mathed/math_dotsinset.C index fe37ae08ea..8ab3afe6fe 100644 --- a/src/mathed/math_dotsinset.C +++ b/src/mathed/math_dotsinset.C @@ -1,53 +1,67 @@ -#include +/** + * \file math_dotsinset.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Alejandro Aguilar Sierra + * \author André Pönitz + * + * Full author contact details are available in file CREDITS. + */ -#ifdef __GNUG__ -#pragma implementation -#endif +#include #include "math_dotsinset.h" #include "math_mathmlstream.h" -#include "math_streamstr.h" #include "math_support.h" #include "math_parser.h" +using std::string; +using std::auto_ptr; + + MathDotsInset::MathDotsInset(latexkeys const * key) : key_(key) {} -MathInset * MathDotsInset::clone() const +auto_ptr MathDotsInset::clone() const { - return new MathDotsInset(*this); + return auto_ptr(new MathDotsInset(*this)); } -void MathDotsInset::metrics(MathMetricsInfo & mi) const +void MathDotsInset::metrics(MetricsInfo & mi, Dimension & dim) const { - mathed_char_dim(mi.base.font, 'M', dim_); + mathed_char_dim(mi.base.font, 'M', dim); dh_ = 0; if (key_->name == "cdots" || key_->name == "dotsb" || key_->name == "dotsm" || key_->name == "dotsi") - dh_ = ascent() / 2; + dh_ = dim.asc / 2; else if (key_->name == "dotsc") - dh_ = ascent() / 4; + dh_ = dim.asc / 4; else if (key_->name == "vdots") { - dim_.w = (dim_.w / 2) + 1; - dh_ = ascent(); + dim.wid = (dim.wid / 2) + 1; + dh_ = dim.asc; } else if (key_->name == "ddots") - dh_ = ascent(); + dh_ = dim.asc; + dim_ = dim; } -void MathDotsInset::draw(MathPainterInfo & pain, int x, int y) const +void MathDotsInset::draw(PainterInfo & pain, int x, int y) const { - mathed_draw_deco(pain, x + 2, y - dh_, width() - 2, ascent(), key_->name); + mathed_draw_deco(pain, x + 2, y - dh_, dim_.width() - 2, dim_.ascent(), + key_->name); if (key_->name == "vdots" || key_->name == "ddots") ++x; if (key_->name != "vdots") --y; - mathed_draw_deco(pain, x + 2, y - dh_, width() - 2, ascent(), key_->name); + mathed_draw_deco(pain, x + 2, y - dh_, dim_.width() - 2, dim_.ascent(), + key_->name); + setPosCache(pain, x, y); }