]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathChar.cpp
* dynamic macros as described in http://1stein.org/download/dynmacro.pdf
[lyx.git] / src / mathed / InsetMathChar.cpp
index 14060f37ac53094d270fa4a8927475f1100eaa25..f1e21131e10ef7e06957f7c68d61502ea8368b92 100644 (file)
@@ -26,8 +26,6 @@
 
 namespace lyx {
 
-using std::auto_ptr;
-
 extern bool has_math_fonts;
 
 namespace {
@@ -52,13 +50,13 @@ InsetMathChar::InsetMathChar(char_type c)
 
 
 
-auto_ptr<Inset> InsetMathChar::doClone() const
+Inset * InsetMathChar::clone() const
 {
-       return auto_ptr<Inset>(new InsetMathChar(*this));
+       return new InsetMathChar(*this);
 }
 
 
-bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
+void InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
 {
 #if 1
        if (char_ == '=' && has_math_fonts) {
@@ -68,7 +66,7 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
                FontSetChanger dummy(mi.base, "cmm");
                dim = theFontMetrics(mi.base.font).dimension(char_);
        } else if (!slanted(char_) && mi.base.fontname == "mathnormal") {
-               ShapeChanger dummy(mi.base.font, Font::UP_SHAPE);
+               ShapeChanger dummy(mi.base.font, UP_SHAPE);
                dim = theFontMetrics(mi.base.font).dimension(char_);
        } else {
                frontend::FontMetrics const & fm = theFontMetrics(mi.base.font);
@@ -87,12 +85,8 @@ bool InsetMathChar::metrics(MetricsInfo & mi, Dimension & dim) const
                dim.wid += 2 * theFontMetrics(font_).width(' ');
        lyxerr << "InsetMathChar::metrics: " << dim << endl;
 #endif
-
-       if (dim_ == dim)
-               return false;
-
-       dim_ = dim;
-       return true;
+       // Cache the inset dimension. 
+       setDimCache(mi, dim);
 }
 
 
@@ -112,7 +106,7 @@ void InsetMathChar::draw(PainterInfo & pi, int x, int y) const
                FontSetChanger dummy(pi.base, "cmm");
                pi.draw(x, y, char_);
        } else if (!slanted(char_) && pi.base.fontname == "mathnormal") {
-               ShapeChanger dummy(pi.base.font, Font::UP_SHAPE);
+               ShapeChanger dummy(pi.base.font, UP_SHAPE);
                pi.draw(x, y, char_);
        } else {
                pi.draw(x, y, char_);