X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_rootinset.C;h=bf3c211f94f9dbf12d1effc501aa81dad24ce1f3;hb=6aa8d56bddcb29d2c266dc520a4e725958c31db1;hp=ee4a2d67fa52796dc76c1bc3e1eaad8c8c5a9591;hpb=96175b2fe6512d7e762b7b2777a0dbdb07a1c719;p=lyx.git diff --git a/src/mathed/math_rootinset.C b/src/mathed/math_rootinset.C index ee4a2d67fa..bf3c211f94 100644 --- a/src/mathed/math_rootinset.C +++ b/src/mathed/math_rootinset.C @@ -1,7 +1,7 @@ /* * File: math_root.C - * Purpose: Implementation of the root object - * Author: Alejandro Aguilar Sierra + * Purpose: Implementation of the root object + * Author: Alejandro Aguilar Sierra * Created: January 1999 * Description: Root math object * @@ -17,7 +17,10 @@ #include "math_rootinset.h" #include "math_mathmlstream.h" -#include "Painter.h" +#include "frontends/Painter.h" + + +using std::max; MathRootInset::MathRootInset() @@ -31,20 +34,22 @@ MathInset * MathRootInset::clone() const } -void MathRootInset::metrics(MathMetricsInfo const & mi) const +void MathRootInset::metrics(MathMetricsInfo & mi) const { MathNestInset::metrics(mi); - ascent_ = std::max(xcell(0).ascent() + 5, xcell(1).ascent()) + 2; - descent_ = std::max(xcell(1).descent() + 5, xcell(0).descent()) + 2; + 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; } -void MathRootInset::draw(Painter & pain, int x, int y) const +void MathRootInset::draw(MathPainterInfo & pain, int x, int y) const { int const w = xcell(0).width(); - xcell(0).draw(pain, x, y - 5 - xcell(0).descent()); // the "exponent" - xcell(1).draw(pain, x + w + 8, y); // the "base" + // the "exponent" + xcell(0).draw(pain, x, y - 5 - xcell(0).descent()); + // the "base" + xcell(1).draw(pain, x + w + 8, y); int const a = ascent(); int const d = descent(); int xp[5]; @@ -54,7 +59,7 @@ void MathRootInset::draw(Painter & pain, int x, int y) const 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::mathline); + pain.pain.lines(xp, yp, 5, LColor::math); } @@ -66,26 +71,16 @@ void MathRootInset::write(WriteStream & os) const void MathRootInset::normalize(NormalStream & os) const { - os << "[root " << cell(1) << ' ' << cell(1) << ']'; -} - - -bool MathRootInset::idxUp(idx_type & idx, pos_type & pos) const -{ - if (idx == 0) - return false; - idx = 0; - pos = cell(0).size(); - return true; + os << "[root " << cell(0) << ' ' << cell(1) << ']'; } -bool MathRootInset::idxDown(idx_type & idx, pos_type & pos) const +bool MathRootInset::idxUpDown(idx_type & idx, bool up) const { - if (idx == 1) + bool target = !up; // up ? 0 : 1; + if (idx == target) return false; - idx = 1; - pos = 0; + idx = target; return true; }