]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_rootinset.C
small up/down tweaking
[lyx.git] / src / mathed / math_rootinset.C
index 98b8423f9491cc6ff0e0e7b7c20ffb6a31214238..8c442d3bf7045bccd5e37f5bfbd708d748bfaa10 100644 (file)
@@ -34,32 +34,35 @@ MathInset * MathRootInset::clone() const
 }
 
 
-void MathRootInset::metrics(MathMetricsInfo const & mi) const
+void MathRootInset::metrics(MathMetricsInfo & mi) const
 {
        MathNestInset::metrics(mi);
-       ascent_  = max(xcell(0).ascent()  + 5, xcell(1).ascent())  + 2;
-       descent_ = max(xcell(1).descent() + 5, xcell(0).descent()) + 2;
-       width_   = xcell(0).width() + xcell(1).width() + 10;
+       dim_.a = max(cell(0).ascent()  + 5, cell(1).ascent())  + 2;
+       dim_.d = max(cell(1).descent() + 5, cell(0).descent()) + 2;
+       dim_.w = cell(0).width() + cell(1).width() + 10;
+       metricsMarkers();
 }
 
 
-void MathRootInset::draw(Painter & pain, int x, int y) const
+void MathRootInset::draw(MathPainterInfo & pi, int x, int y) const
 {
-       int const w = xcell(0).width();
+       int const w = cell(0).width();
        // the "exponent"
-       xcell(0).draw(pain, x, y - 5 - xcell(0).descent());
+       cell(0).draw(pi, x, y - 5 - cell(0).descent());
        // the "base"
-       xcell(1).draw(pain, x + w + 8, y);
+       cell(1).draw(pi, x + w + 8, y);
        int const a = ascent();
        int const d = descent();
        int xp[5];
        int yp[5];
-       xp[0] = x + width_;   yp[0] = y - a + 1;
+       xp[0] = x + width();  yp[0] = y - a + 1;
        xp[1] = x + w + 4;    yp[1] = y - a + 1;
        xp[2] = x + w;        yp[2] = y + d;
        xp[3] = x + w - 2;    yp[3] = y + (d - a)/2 + 2;
-       xp[4] = x;            yp[4] = y + (d - a)/2 + 2;
-       pain.lines(xp, yp, 5, LColor::math);
+       //xp[4] = x;            yp[4] = y + (d - a)/2 + 2;
+       xp[4] = x + w - 5;    yp[4] = y + (d - a)/2 + 4;
+       pi.pain.lines(xp, yp, 5, LColor::math);
+       drawMarkers(pi, x, y);
 }
 
 
@@ -75,19 +78,26 @@ void MathRootInset::normalize(NormalStream & os) const
 }
 
 
-bool MathRootInset::idxUpDown(idx_type & idx, bool up) const
+bool MathRootInset::idxUpDown(idx_type & idx, pos_type & pos, bool up, int) const
 {
        bool target = !up; // up ? 0 : 1;
        if (idx == target)
                return false;
        idx = target;
+       pos = target ? 0 : cell(0).size();
        return true;
 }
 
 
+void MathRootInset::maplize(MapleStream & os) const
+{
+       os << '(' << cell(1) << ")^(1/(" << cell(0) <<"))";
+}
+
+
 void MathRootInset::octavize(OctaveStream & os) const
 {
-       os << "root(" << cell(1) << ',' << cell(0) <<')';
+       os << "root(" << cell(1) << ',' << cell(0) << ')';
 }