X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathKern.cpp;h=d223887e3b6c2d712f0c9a4a1b577dc1e285b70c;hb=28be7d552f62cc02fa86d7f79201d089bfb2d7b5;hp=2b2b1efc535e22de087ee62542e45548a797995f;hpb=32871c1284f15265f652ff01c438e539a7c8181f;p=lyx.git diff --git a/src/mathed/InsetMathKern.cpp b/src/mathed/InsetMathKern.cpp index 2b2b1efc53..d223887e3b 100644 --- a/src/mathed/InsetMathKern.cpp +++ b/src/mathed/InsetMathKern.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -11,55 +11,45 @@ #include #include "InsetMathKern.h" -#include "MathStream.h" + #include "MathStream.h" #include "MathSupport.h" + #include "Dimension.h" +#include "MetricsInfo.h" +#include "support/docstring.h" namespace lyx { -using std::string; -using std::auto_ptr; - - InsetMathKern::InsetMathKern() { - dim_.asc = 0; - dim_.des = 0; } InsetMathKern::InsetMathKern(Length const & w) : wid_(w) { - dim_.asc = 0; - dim_.des = 0; } InsetMathKern::InsetMathKern(docstring const & s) : wid_(to_utf8(s)) { - dim_.asc = 0; - dim_.des = 0; } -auto_ptr InsetMathKern::doClone() const +Inset * InsetMathKern::clone() const { - return auto_ptr(new InsetMathKern(*this)); + return new InsetMathKern(*this); } -bool InsetMathKern::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetMathKern::metrics(MetricsInfo & mi, Dimension & dim) const { - int wid_pixel = wid_.inPixels(0, mathed_char_width(mi.base.font, 'M')); - if (wid_pixel == dim_.wid) - return false; - dim_.wid = wid_pixel; - dim = dim_; - return true; + dim.asc = 0; + dim.des = 0; + dim.wid = wid_.inPixels(mi.base); } @@ -69,13 +59,29 @@ void InsetMathKern::draw(PainterInfo &, int, int) const void InsetMathKern::write(WriteStream & os) const { - os << "\\kern" << from_utf8(wid_.asLatexString()) << ' '; + if (wid_.empty()) + os << "\\kern" << ' '; + else if (wid_.unit() == Length::MU) + os << "\\mkern" << from_utf8(wid_.asLatexString()) << ' '; + else + os << "\\kern" << from_utf8(wid_.asLatexString()) << ' '; } void InsetMathKern::normalize(NormalStream & os) const { - os << "[kern " << from_utf8(wid_.asLatexString()) << ']'; + if (wid_.empty()) + os << "[kern]"; + else + os << "[kern " << from_utf8(wid_.asLatexString()) << ']'; +} + + +void InsetMathKern::infoize2(odocstream & os) const +{ + os << "Kern"; + if (!wid_.empty()) + os << ": " << from_utf8(wid_.asLatexString()); }