]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetlatexaccent.C
* src/LyXAction.C: mark goto-clear-bookmark as working without buffer
[lyx.git] / src / insets / insetlatexaccent.C
index 720c858fc484d086e9c651e33fea8d9999bc4f00..94c1e2b19c0757d3e573aefdb98a01c2f925b77e 100644 (file)
 
 #include "support/lstrings.h"
 
-using lyx::char_type;
-using lyx::docstring;
-using lyx::odocstream;
-using lyx::support::contains;
-using lyx::support::trim;
+
+namespace lyx {
+
+using support::contains;
+using support::trim;
 
 using std::endl;
 using std::string;
@@ -242,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
@@ -273,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;
 }
 
 
@@ -329,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);
@@ -353,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);
@@ -491,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:
@@ -575,7 +576,7 @@ void InsetLatexAccent::read(Buffer const &, LyXLex & lex)
 int InsetLatexAccent::latex(Buffer const &, odocstream & os,
                            OutputParams const &) const
 {
-       os << lyx::from_ascii(contents);
+       os << from_ascii(contents);
        return 0;
 }
 
@@ -583,15 +584,16 @@ int InsetLatexAccent::latex(Buffer const &, odocstream & os,
 int InsetLatexAccent::plaintext(Buffer const &, odocstream & os,
                            OutputParams const &) const
 {
-       os << lyx::from_ascii(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;
 }
 
@@ -619,3 +621,6 @@ ostream & operator<<(ostream & o, InsetLatexAccent::ACCENT_TYPES at)
 {
        return o << int(at);
 }
+
+
+} // namespace lyx