-#ifdef __GNUG__
-#pragma implementation
-#endif
+#include <config.h>
+
#include "math_kerninset.h"
-#include "support.h"
-#include "support/LOstream.h"
+#include "math_extern.h"
+#include "math_mathmlstream.h"
+#include "math_streamstr.h"
+#include "math_support.h"
+
+using std::auto_ptr;
MathKernInset::MathKernInset()
{}
-MathInset * MathKernInset::clone() const
+auto_ptr<InsetBase> MathKernInset::clone() const
{
- return new MathKernInset(*this);
+ return auto_ptr<InsetBase>(new MathKernInset(*this));
}
-void MathKernInset::draw(Painter &, int, int) const
-{}
-
-
-void MathKernInset::write(MathWriteInfo & os) const
+void MathKernInset::metrics(MetricsInfo & mi, Dimension & dim) const
{
- os << "\\kern" << wid_.asLatexString() << " ";
+ dim.wid = wid_.inPixels(0, mathed_char_width(mi.base.font, 'M'));
+ dim.asc = 0;
+ dim.des = 0;
}
-void MathKernInset::writeNormal(std::ostream & os) const
+void MathKernInset::draw(PainterInfo &, int, int) const
+{}
+
+
+void MathKernInset::write(WriteStream & os) const
{
- os << "[kern " << wid_.asLatexString() << "]";
+ os << "\\kern" << wid_.asLatexString() << ' ';
}
-void MathKernInset::metrics(MathMetricsInfo const &) const
+void MathKernInset::normalize(NormalStream & os) const
{
- ascent_ = 0;
- descent_ = 0;
-#ifdef WITH_WARNINGS
-#warning fix this once the interface to LyXLength has improved
-#endif
- // this uses the numerical valu in pixels, even if the unit is cm or ex!
- width_ = static_cast<int>(wid_.value());
- //cerr << "handling kern of width " << wid_.value() << "\n";
+ os << "[kern " << wid_.asLatexString() << ']';
}