]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_fracinset.C
further code uglification to make Jean-Marc's compiler happy
[lyx.git] / src / mathed / math_fracinset.C
index 2f195276fa503f6b0d2c30715ba41577bcf666c0..e4e08935ed0e250fa757ad7c20b6a1ebdb307717 100644 (file)
@@ -8,8 +8,8 @@
 #include "support/LOstream.h"
 
 
-MathFracInset::MathFracInset(string const & name)
-       : MathInset(2, name)
+MathFracInset::MathFracInset(bool atop)
+       : atop_(atop)
 {}
 
 
@@ -19,7 +19,7 @@ MathInset * MathFracInset::clone() const
 }
 
 
-void MathFracInset::metrics(MathStyles st)
+void MathFracInset::metrics(MathStyles st) const
 {
        size_    = smallerStyleFrac(st);
        xcell(0).metrics(size_);
@@ -30,91 +30,44 @@ void MathFracInset::metrics(MathStyles st)
 }
 
 
-void MathFracInset::draw(Painter & pain, int x, int y)
+void MathFracInset::draw(Painter & pain, int x, int y) const
 {
        xo(x);
        yo(y);
        int m = x + width() / 2;
        xcell(0).draw(pain, m - xcell(0).width() / 2, y - xcell(0).descent() - 3 - 5);
        xcell(1).draw(pain, m - xcell(1).width() / 2, y + xcell(1).ascent()  + 3 - 5);
-       
-       if (name() == "frac")
+       if (!atop_)
                pain.line(x + 2, y - 5, x + width() - 4, y - 5, LColor::mathline);
 }
 
 
 void MathFracInset::write(std::ostream & os, bool fragile) const
 {
-       os << '\\' << name() << '{';
-       cell(0).write(os, fragile);
-       os << "}{";
-       cell(1).write(os, fragile);
-       os << '}';
+       if (atop_) {
+               os << "{";
+               cell(0).write(os, fragile);
+               os << "\\atop ";
+               cell(1).write(os, fragile);
+               os << '}';
+       } else {
+               os << "\\frac{";
+               cell(0).write(os, fragile);
+               os << "}{";
+               cell(1).write(os, fragile);
+               os << '}';
+       }
 }
 
 
 void MathFracInset::writeNormal(std::ostream & os) const
 {
-       os << '[' << name() << ' ';
+       if (atop_) 
+               os << "[atop ";
+       else
+               os << "[frac ";
        cell(0).writeNormal(os);
        os << " ";
        cell(1).writeNormal(os);
        os << "] ";
 }
-
-
-bool MathFracInset::idxRight(int &, int &) const
-{
-       return false;
-}
-
-bool MathFracInset::idxLeft(int &, int &) const
-{
-       return false;
-}
-
-
-bool MathFracInset::idxUp(int & idx, int &) const
-{
-       if (idx == 0)
-               return false;
-       idx = 0;
-       return true;
-}
-
-bool MathFracInset::idxDown(int & idx, int &) const
-{
-       if (idx == 1)
-               return false;
-       idx = 1;
-       return true;
-}
-
-bool MathFracInset::idxFirstUp(int & idx, int & pos) const
-{
-       idx = 0;
-       pos = 0;
-       return true;
-}
-
-bool MathFracInset::idxFirstDown(int & idx, int & pos) const
-{
-       idx = 1;
-       pos = 0;
-       return true;
-}
-
-bool MathFracInset::idxLastUp(int & idx, int & pos) const
-{
-       idx = 0;
-       pos = cell(idx).size();
-       return true;
-}
-
-bool MathFracInset::idxLastDown(int & idx, int & pos) const
-{
-       idx = 1;
-       pos = cell(idx).size();
-       return true;
-}
-