-#include <config.h>
+/**
+ * \file math_kerninset.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.
+ */
-#ifdef __GNUG__
-#pragma implementation
-#endif
+#include <config.h>
#include "math_kerninset.h"
-#include "math_extern.h"
#include "math_mathmlstream.h"
#include "math_streamstr.h"
#include "math_support.h"
-#include "lyxrc.h"
+#include "dimension.h"
+
+
+using std::string;
+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::metrics(MathMetricsInfo const & /*mi*/) const
+void MathKernInset::metrics(MetricsInfo & mi, Dimension & dim) const
{
-#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());
- width_ = (width_*static_cast<int>(lyxrc.zoom))/150;
- ascent_ = 0;
- descent_ = 0;
- //cerr << "handling kern of width " << wid_.value() << "\n";
+ dim.wid = wid_.inPixels(0, mathed_char_width(mi.base.font, 'M'));
+ dim.asc = 0;
+ dim.des = 0;
}
-void MathKernInset::draw(Painter &, int, int) const
+void MathKernInset::draw(PainterInfo &, int, int) const
{}
void MathKernInset::write(WriteStream & os) const
{
- os << "\\kern" << wid_.asLatexString() << " ";
+ os << "\\kern" << wid_.asLatexString() << ' ';
}
void MathKernInset::normalize(NormalStream & os) const
{
- os << "[kern " << wid_.asLatexString() << "]";
+ os << "[kern " << wid_.asLatexString() << ']';
}