-#ifdef __GNUG__
-#pragma implementation
-#endif
+/**
+ * \file math_fracbase.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#include <config.h>
#include "math_fracbase.h"
-#include "math_mathmlstream.h"
+#include "math_data.h"
MathFracbaseInset::MathFracbaseInset()
{}
-bool MathFracbaseInset::idxRight(MathInset::idx_type &,
- MathInset::pos_type &) const
+bool MathFracbaseInset::idxRight(idx_type &, pos_type &) const
{
return false;
}
-bool MathFracbaseInset::idxLeft(MathInset::idx_type &,
- MathInset::pos_type &) const
+bool MathFracbaseInset::idxLeft(idx_type &, pos_type &) const
{
return false;
}
-bool MathFracbaseInset::idxFirstUp(idx_type & idx, pos_type & pos) const
+bool MathFracbaseInset::idxUpDown(idx_type & idx, pos_type & pos, bool up,
+ int targetx) const
{
- idx = 0;
- pos = 0;
- return true;
-}
-
-
-bool MathFracbaseInset::idxFirstDown(idx_type & idx, pos_type & pos) const
-{
- idx = 1;
- pos = 0;
- return true;
-}
-
-
-bool MathFracbaseInset::idxLastUp(idx_type & idx, pos_type & pos) const
-{
- idx = 0;
- pos = cell(0).size();
- return true;
-}
-
-
-bool MathFracbaseInset::idxLastDown(idx_type & idx, pos_type & pos) const
-{
- idx = 1;
- pos = cell(1).size();
- return true;
-}
-
-
-bool MathFracbaseInset::idxUp(MathInset::idx_type & idx,
- MathInset::pos_type & pos) const
-{
- if (idx == 0)
- return false;
- idx = 0;
- pos = std::min(pos, cell(idx).size());
- return true;
-}
-
-
-bool MathFracbaseInset::idxDown(MathInset::idx_type & idx,
- MathInset::pos_type & pos) const
-{
- if (idx == 1)
+ MathInset::idx_type target = !up; // up ? 0 : 1, since upper cell has idx 0
+ if (idx == target)
return false;
- idx = 1;
- pos = std::min(pos, cell(idx).size());
+ idx = target;
+ pos = cell(idx).x2pos(targetx);
return true;
}