-#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"
+#include "cursor.h"
MathFracbaseInset::MathFracbaseInset()
{}
-bool MathFracbaseInset::idxRight(MathInset::idx_type &,
- MathInset::pos_type &) const
+bool MathFracbaseInset::idxRight(LCursor &) const
{
return false;
}
-bool MathFracbaseInset::idxLeft(MathInset::idx_type &,
- MathInset::pos_type &) const
+bool MathFracbaseInset::idxLeft(LCursor &) const
{
return false;
}
-bool MathFracbaseInset::idxFirstUp(idx_type & idx, pos_type & pos) const
+bool MathFracbaseInset::idxUpDown(LCursor & cur, bool up) 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 (cur.idx() == target)
return false;
- idx = 1;
- pos = std::min(pos, cell(idx).size());
+ cur.idx() = target;
+ cur.pos() = cell(target).x2pos(cur.x_target());
return true;
}