-#ifdef __GNUG__
-#pragma implementation
-#endif
+/**
+ * \file math_lefteqninset.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_lefteqninset.h"
-#include "support/LOstream.h"
-#include "LColor.h"
-#include "Painter.h"
-#include "math_cursor.h"
+#include "math_data.h"
+#include "support/std_ostream.h"
+
+
+using std::string;
+using std::auto_ptr;
MathLefteqnInset::MathLefteqnInset()
{}
-MathInset * MathLefteqnInset::clone() const
+auto_ptr<InsetBase> MathLefteqnInset::doClone() const
{
- return new MathLefteqnInset(*this);
+ return auto_ptr<InsetBase>(new MathLefteqnInset(*this));
}
-void MathLefteqnInset::draw(Painter & pain, int x, int y) const
+void MathLefteqnInset::metrics(MetricsInfo & mi, Dimension & dim) const
{
- xcell(0).draw(pain, x + 2, y);
- if (mathcursor && mathcursor->isInside(this)) {
- pain.rectangle(x, y - ascent(), xcell(0).width(), height(),
- LColor::mathframe);
- }
+ cell(0).metrics(mi, dim);
+ dim.asc += 2;
+ dim.des += 2;
+ dim.wid = 4;
+ metricsMarkers(dim);
+ dim_ = dim;
}
-void MathLefteqnInset::write(MathWriteInfo & os) const
+void MathLefteqnInset::draw(PainterInfo & pi, int x, int y) const
{
- os << "\\lefteqn{" << cell(0) << "}";
+ cell(0).draw(pi, x + 2, y);
+ drawMarkers(pi, x, y);
}
-void MathLefteqnInset::writeNormal(std::ostream & os) const
+string MathLefteqnInset::name() const
{
- os << "[lefteqn ";
- MathWriteInfo wi(os);
- cell(0).write(wi);
- os << "] ";
+ return "lefteqn";
}
-void MathLefteqnInset::metrics(MathMetricsInfo const & st) const
+void MathLefteqnInset::infoize(std::ostream & os) const
{
- MathNestInset::metrics(st);
- size_ = st;
- ascent_ = xcell(0).ascent() + 2;
- descent_ = xcell(0).descent() + 2;
- width_ = 4;
+ os << "Lefteqn ";
}