X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetlatexaccent.C;h=94c1e2b19c0757d3e573aefdb98a01c2f925b77e;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=429bfbea588e15545572c600aff0e16d966f6f83;hpb=28ad9602557a145bfd88c79dddecdc34c95c698c;p=lyx.git diff --git a/src/insets/insetlatexaccent.C b/src/insets/insetlatexaccent.C index 429bfbea58..94c1e2b19c 100644 --- a/src/insets/insetlatexaccent.C +++ b/src/insets/insetlatexaccent.C @@ -24,10 +24,11 @@ #include "support/lstrings.h" -using lyx::char_type; -using lyx::docstring; -using lyx::support::contains; -using lyx::support::trim; + +namespace lyx { + +using support::contains; +using support::trim; using std::endl; using std::string; @@ -241,10 +242,10 @@ void InsetLatexAccent::checkContents() } -void InsetLatexAccent::metrics(MetricsInfo & mi, Dimension & dim) const +bool InsetLatexAccent::metrics(MetricsInfo & mi, Dimension & dim) const { LyXFont & font = mi.base.font; - lyx::frontend::FontMetrics const & fm = theFontMetrics(font); + frontend::FontMetrics const & fm = theFontMetrics(font); // This function is a bit too simplistic and is just a // "try to make a fit for all accents" approach, to @@ -272,7 +273,9 @@ void InsetLatexAccent::metrics(MetricsInfo & mi, Dimension & dim) const docstring dcon(contents.begin(), contents.end()); dim.wid = fm.width(dcon) + 4; } + bool const changed = dim_ != dim; dim_ = dim; + return changed; } @@ -328,7 +331,7 @@ void InsetLatexAccent::drawAccent(PainterInfo const & pi, int x, int y, char_type accent) const { LyXFont const & font = pi.base.font; - lyx::frontend::FontMetrics const & fm = theFontMetrics(font); + frontend::FontMetrics const & fm = theFontMetrics(font); x -= fm.center(accent); y -= fm.ascent(ic); @@ -352,7 +355,7 @@ void InsetLatexAccent::draw(PainterInfo & pi, int x, int baseline) const if (lyxrc.font_norm_type == LyXRC::ISO_10646_1) font.setLanguage(english_language); - lyx::frontend::FontMetrics const & fm = theFontMetrics(font); + frontend::FontMetrics const & fm = theFontMetrics(font); if (candisp) { int x2 = int(x + (fm.rbearing(ic) - fm.lbearing(ic)) / 2); @@ -490,8 +493,7 @@ void InsetLatexAccent::draw(PainterInfo & pi, int x, int baseline) const } case HUNGARIAN_UMLAUT: - drawAccent(pi, x2 - fm.center('´'), baseline, '´'); - drawAccent(pi, x2 + fm.center('´'), baseline, '´'); + drawAccent(pi, x2, baseline, 0x02DD); break; case UMLAUT: @@ -571,31 +573,32 @@ void InsetLatexAccent::read(Buffer const &, LyXLex & lex) } -int InsetLatexAccent::latex(Buffer const &, ostream & os, +int InsetLatexAccent::latex(Buffer const &, odocstream & os, OutputParams const &) const { - os << contents; + os << from_ascii(contents); return 0; } -int InsetLatexAccent::plaintext(Buffer const &, ostream & os, +int InsetLatexAccent::plaintext(Buffer const &, odocstream & os, OutputParams const &) const { - os << contents; + os << from_ascii(contents); return 0; } -int InsetLatexAccent::docbook(Buffer const &, ostream & os, +int InsetLatexAccent::docbook(Buffer const &, odocstream & os, OutputParams const &) const { - os << contents; + // FIXME UNICODE + os << from_ascii(contents); return 0; } -int InsetLatexAccent::textString(Buffer const & buf, ostream & os, +int InsetLatexAccent::textString(Buffer const & buf, odocstream & os, OutputParams const & op) const { return plaintext(buf, os, op); @@ -618,3 +621,6 @@ ostream & operator<<(ostream & o, InsetLatexAccent::ACCENT_TYPES at) { return o << int(at); } + + +} // namespace lyx