/** * \file InsetMathKern.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 "InsetMathKern.h" #include "MathStream.h" #include "MathStream.h" #include "MathSupport.h" #include "dimension.h" namespace lyx { using std::string; using std::auto_ptr; InsetMathKern::InsetMathKern() {} InsetMathKern::InsetMathKern(LyXLength const & w) : wid_(w) {} InsetMathKern::InsetMathKern(docstring const & s) : wid_(to_utf8(s)) {} auto_ptr InsetMathKern::doClone() const { return auto_ptr(new InsetMathKern(*this)); } bool InsetMathKern::metrics(MetricsInfo & mi, Dimension & dim) const { wid_pix_ = wid_.inPixels(0, mathed_char_width(mi.base.font, 'M')); dim.wid = wid_pix_; dim.asc = 0; dim.des = 0; if (dim_ == dim) return false; dim_ = dim; return true; } int InsetMathKern::width() const { return wid_pix_; } void InsetMathKern::draw(PainterInfo &, int, int) const {} void InsetMathKern::write(WriteStream & os) const { os << "\\kern" << from_utf8(wid_.asLatexString()) << ' '; } void InsetMathKern::normalize(NormalStream & os) const { os << "[kern " << from_utf8(wid_.asLatexString()) << ']'; } } // namespace lyx