]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_macroarg.C
Jean-Marc's fix for wrong descent
[lyx.git] / src / mathed / math_macroarg.C
index 2f68f11e89dd6710b287dbccb6df10ba414b1d2c..09b28d1a67ad26c2198e7bf042d0bc96eb1bde03 100644 (file)
@@ -1,10 +1,6 @@
-#ifdef __GNUG__
-#pragma implementation
-#endif
 
 #include "math_macroarg.h"
 #include "math_macro.h"
-#include "math_defs.h"
 #include "math_mathmlstream.h"
 #include "math_support.h"
 #include "debug.h"
@@ -13,8 +9,8 @@
 using std::endl;
 
 
-MathMacroArgument::MathMacroArgument(int n, MathTextCodes code)
-       : MathNestInset(1), number_(n), expanded_(false), code_(code)
+MathMacroArgument::MathMacroArgument(int n)
+       : MathNestInset(1), number_(n), expanded_(false)
 {
        if (n < 1 || n > 9) {
                lyxerr << "MathMacroArgument::MathMacroArgument: wrong Argument id: "
@@ -34,32 +30,25 @@ MathInset * MathMacroArgument::clone() const
 
 void MathMacroArgument::write(WriteStream & os) const
 {
-       if (code_ == LM_TC_MIN)
-               os << str_;
-       else
-               os << '\\' << math_font_name(code_) << '{' << str_ << '}';
+       os << str_;
 }
 
 
-void MathMacroArgument::metrics(MathMetricsInfo const & mi) const
+void MathMacroArgument::metrics(MathMetricsInfo & mi) const
 {
-       whichFont(font_, LM_TC_TEX, mi);
-       if (expanded_) {
-               xcell(0).metrics(mi);
-               width_   = xcell(0).width();
-               ascent_  = xcell(0).ascent();
-               descent_ = xcell(0).descent();
-       } else
-               mathed_string_dim(font_, str_, ascent_, descent_, width_);
+       if (expanded_)
+               dim_ = cell(0).metrics(mi);
+       else
+               mathed_string_dim(mi.base.font, str_, dim_);
 }
 
 
-void MathMacroArgument::draw(Painter & pain, int x, int y) const
+void MathMacroArgument::draw(MathPainterInfo & pi, int x, int y) const
 {
        if (expanded_)
-               xcell(0).draw(pain, x, y);
+               cell(0).draw(pi, x, y);
        else
-               drawStr(pain, font_, x, y, str_);
+               drawStrRed(pi, x, y, str_);
 }
 
 
@@ -72,9 +61,5 @@ void MathMacroArgument::normalize(NormalStream & os) const
 void MathMacroArgument::substitute(MathMacro const & m)
 {
        cell(0) = m.cell(number_ - 1);
-       if (code_ != LM_TC_MIN)
-               for (MathArray::iterator it = cell(0).begin(); it != cell(0).end(); ++it)
-                       it->nucleus()->handleFont(code_);
        expanded_ = true;
 }
-