-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include "math_lefteqninset.h"
+#include "math_support.h"
#include "support/LOstream.h"
-#include "LColor.h"
-#include "Painter.h"
-#include "math_cursor.h"
+
+using std::auto_ptr;
MathLefteqnInset::MathLefteqnInset()
{}
-MathInset * MathLefteqnInset::clone() const
+auto_ptr<InsetBase> MathLefteqnInset::clone() 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_.asc = cell(0).ascent() + 2;
+ dim_.des = cell(0).descent() + 2;
+ dim_.wid = 4;
+ metricsMarkers();
+ dim = dim_;
}
-void MathLefteqnInset::write(std::ostream & os, bool fragile) const
+void MathLefteqnInset::draw(PainterInfo & pi, int x, int y) const
{
- os << "\\lefteqn{";
- cell(0).write(os, fragile);
- os << "}";
+ cell(0).draw(pi, x + 2, y);
+ drawMarkers(pi, x, y);
}
-void MathLefteqnInset::writeNormal(std::ostream & os) const
+string MathLefteqnInset::name() const
{
- os << "[lefteqn ";
- cell(0).write(os, false);
- os << "] ";
+ return "lefteqn";
}
-void MathLefteqnInset::metrics(MathStyles 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 ";
}