X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetspace.C;h=e7fc211fe57e58039ea77110956403a6d02baea1;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=0ca675b1bb77a3b2fd9f1e2e373096c1c40d66fb;hpb=d9e6e32961860821ecc047039ae6c1a9dcc6e35d;p=lyx.git diff --git a/src/insets/insetspace.C b/src/insets/insetspace.C index 0ca675b1bb..e7fc211fe5 100644 --- a/src/insets/insetspace.C +++ b/src/insets/insetspace.C @@ -21,10 +21,12 @@ #include "metricsinfo.h" #include "outputparams.h" -#include "frontends/font_metrics.h" +#include "frontends/FontMetrics.h" #include "frontends/Painter.h" +namespace lyx { + using std::string; using std::max; using std::auto_ptr; @@ -46,20 +48,21 @@ InsetSpace::Kind InsetSpace::kind() const } -void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const +bool InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const { - LyXFont & font = mi.base.font; - dim.asc = font_metrics::maxAscent(font); - dim.des = font_metrics::maxDescent(font); + frontend::FontMetrics const & fm = + theFontMetrics(mi.base.font); + dim.asc = fm.maxAscent(); + dim.des = fm.maxDescent(); switch (kind_) { case THIN: case NEGTHIN: - dim.wid = font_metrics::width("x", font) / 3; + dim.wid = fm.width(char_type('x')) / 3; break; case PROTECTED: case NORMAL: - dim.wid = font_metrics::width("x", font); + dim.wid = fm.width(char_type('x')); break; case QUAD: dim.wid = 20; @@ -72,14 +75,17 @@ void InsetSpace::metrics(MetricsInfo & mi, Dimension & dim) const dim.wid = 10; break; } + bool const changed = dim_ != dim; dim_ = dim; + return changed; } void InsetSpace::draw(PainterInfo & pi, int x, int y) const { int const w = width(); - int const h = font_metrics::ascent('x', pi.base.font); + int const h = theFontMetrics(pi.base.font) + .ascent('x'); int xp[4], yp[4]; xp[0] = x; @@ -160,7 +166,7 @@ void InsetSpace::read(Buffer const &, LyXLex & lex) } -int InsetSpace::latex(Buffer const &, ostream & os, +int InsetSpace::latex(Buffer const &, odocstream & os, OutputParams const & runparams) const { switch (kind_) { @@ -193,7 +199,7 @@ int InsetSpace::latex(Buffer const &, ostream & os, } -int InsetSpace::plaintext(Buffer const &, ostream & os, +int InsetSpace::plaintext(Buffer const &, odocstream & os, OutputParams const &) const { switch (kind_) { @@ -212,28 +218,7 @@ int InsetSpace::plaintext(Buffer const &, ostream & os, } -int InsetSpace::linuxdoc(Buffer const &, ostream & os, - OutputParams const &) const -{ - switch (kind_) { - case NORMAL: - case QUAD: - case QQUAD: - case ENSKIP: - os << " "; - break; - case PROTECTED: - case ENSPACE: - case THIN: - case NEGTHIN: - os << " "; - break; - } - return 0; -} - - -int InsetSpace::docbook(Buffer const &, ostream & os, +int InsetSpace::docbook(Buffer const &, odocstream & os, OutputParams const &) const { switch (kind_) { @@ -254,7 +239,7 @@ int InsetSpace::docbook(Buffer const &, ostream & os, } -int InsetSpace::textString(Buffer const & buf, ostream & os, +int InsetSpace::textString(Buffer const & buf, odocstream & os, OutputParams const & op) const { return plaintext(buf, os, op); @@ -281,3 +266,6 @@ bool InsetSpace::isSpace() const { return true; } + + +} // namespace lyx