+/**
+ * \file math_textinset.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_textinset.h"
-#include "metricsinfo.h"
+#include "math_data.h"
+
+#include "cursor_slice.h"
#include "debug.h"
+#include "metricsinfo.h"
using std::auto_ptr;
using std::endl;
}
-void MathTextInset::getPos(idx_type /*idx*/, pos_type pos, int & x, int & y) const
+void MathTextInset::getCursorPos(CursorSlice const & cur, int & x, int & y) const
{
- idx_type const i = pos2row(pos);
- pos_type const p = pos - cache_.cellinfo_[i].begin_;
- cache_.getPos(i, p, x, y);
- y = cache_.cell(i).yo();
+ CursorSlice c = cur;
+ c.idx() = pos2row(cur.pos());
+ c.pos() -= cache_.cellinfo_[c.idx()].begin_;
+ cache_.getCursorPos(c, x, y);
+ y = cache_.cell(c.idx()).yo();
}
-bool MathTextInset::idxUpDown2(idx_type &, pos_type & pos, bool up,
- int /*targetx*/) const
+#if 0
+bool MathTextInset::idxUpDown2(LCursor & pos, bool up) const
{
// try to move only one screen row up or down if possible
idx_type i = pos2row(pos);
pos = cell2.begin_ + cache_.cell(i).x2pos(x, cell2.glue_);
return true;
}
+#endif
void MathTextInset::metrics(MetricsInfo & mi, Dimension & dim) const
safepos = i;
++spaces;
// restart chunk with size of the space
- curr = cell(0)[i].width_;
+ curr = cell(0)[i]->width();
continue;
}
if (c != '\n') {
// This is a regular char. Go on if we either don't care for
// the width limit or have not reached that limit.
- curr += cell(0)[i].width_;
+ curr += cell(0)[i]->width();
if (curr + safe <= mi.base.textwidth)
continue;
}
}
+/*
void MathTextInset::drawSelection(PainterInfo & pi,
idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const
{
cache_.drawSelection(pi, idx1, pos1, idx2, pos2);
}
+*/