#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
#include "math_data.h"
#include "math_inset.h"
#include "math_replace.h"
#include "debug.h"
#include "support/LAssert.h"
-#include "math_metricsinfo.h"
+#include "metricsinfo.h"
#include "frontends/Painter.h"
#include "textpainter.h"
{
NormalStream ns(lyxerr);
for (const_iterator it = begin(); it != end(); ++it)
- ns << "<" << *it << ">";
+ ns << '<' << *it << '>';
}
}
-Dimension const & MathArray::metrics(MathMetricsInfo & mi) const
+Dimension const & MathArray::metrics(MetricsInfo & mi) const
{
//if (clean_)
// return;
drawn_ = false;
mathed_char_dim(mi.base.font, 'I', dim_);
- if (empty())
+ if (empty())
return dim_;
dim_.w = 0;
}
-void MathArray::draw(MathPainterInfo & pi, int x, int y) const
+void MathArray::draw(PainterInfo & pi, int x, int y) const
{
//if (drawn_ && x == xo_ && y == yo_)
// return;
{
//if (drawn_ && x == xo_ && y == yo_)
// return;
- //lyxerr << "x: " << x << " y: " << y << " " << pain.workAreaHeight() << endl;
+ //lyxerr << "x: " << x << " y: " << y << ' ' << pain.workAreaHeight() << endl;
xo_ = x;
yo_ = y;
drawn_ = true;
int MathArray::pos2x(size_type pos) const
{
- return pos2x(0, pos, 0);
+ return pos2x(pos, 0);
}
-int MathArray::pos2x(size_type pos1, size_type pos2, int glue) const
+int MathArray::pos2x(size_type pos, int glue) const
{
int x = 0;
- size_type target = min(pos2, size());
- for (size_type i = pos1; i < target; ++i) {
+ size_type target = min(pos, size());
+ for (size_type i = 0; i < target; ++i) {
const_iterator it = begin() + i;
if ((*it)->getChar() == ' ')
x += glue;
MathArray::size_type MathArray::x2pos(int targetx) const
{
- return x2pos(0, targetx, 0);
+ return x2pos(targetx, 0);
}
-MathArray::size_type MathArray::x2pos(size_type startpos, int targetx,
- int glue) const
+MathArray::size_type MathArray::x2pos(int targetx, int glue) const
{
- const_iterator it = begin() + startpos;
+ const_iterator it = begin();
int lastx = 0;
int currx = 0;
for (; currx < targetx && it < end(); ++it) {
currx += glue;
currx += (*it)->width();
}
- if (abs(lastx - targetx) < abs(currx - targetx) && it != begin() + startpos)
+ if (abs(lastx - targetx) < abs(currx - targetx) && it != begin())
--it;
return it - begin();
}
y2 = yo_ + descent();
}
+
void MathArray::center(int & x, int & y) const
{
x = xo_ + width() / 2;
mathcursor->adjust(i, ar.size() - 1);
}
}
-
+
// glue adjacent font insets of the same kind
for (pos_type i = 0; i + 1 < size(); ++i) {
MathFontInset * p = operator[](i).nucleus()->asFontInset();
if (p && q && p->name() == q->name()) {
p->cell(0).append(q->cell(0));
erase(i + 1);
+ mathcursor->adjust(i, -1);
}
- mathcursor->adjust(i, -1);
}
}