#include "math_support.h"
#include "LaTeXFeatures.h"
+#include "LColor.h"
#include "support/std_ostream.h"
using std::auto_ptr;
-MathColorInset::MathColorInset()
- : MathNestInset(2)
+MathColorInset::MathColorInset(bool oldstyle)
+ : MathNestInset(2), oldstyle_(oldstyle)
{}
-auto_ptr<InsetBase> MathColorInset::clone() const
+auto_ptr<InsetBase> MathColorInset::doClone() const
{
return auto_ptr<InsetBase>(new MathColorInset(*this));
}
void MathColorInset::metrics(MetricsInfo & mi, Dimension & dim) const
{
cell(1).metrics(mi, dim);
- if (editing()) {
+ if (editing(mi.base.bv)) {
FontSetChanger dummy(mi.base, "textnormal");
cell(0).metrics(mi);
dim += cell(0).dim();
dim.asc += 4;
dim.des += 4;
dim.wid += 2 * w_ + 4;
- metricsMarkers();
+ metricsMarkers(dim);
}
dim_ = dim;
}
void MathColorInset::draw(PainterInfo & pi, int x, int y) const
{
- if (editing()) {
+ if (editing(pi.base.bv)) {
FontSetChanger dummy(pi.base, "textnormal");
drawMarkers(pi, x, y);
drawStrBlack(pi, x, y, "[");
x += w_ + 2;
}
- ColorChanger dummy1(pi.base.font, asString(cell(0)));
+ LColor_color origcol = pi.base.font.color();
+ pi.base.font.setColor(lcolor.getFromGUIName(asString(cell(0))));
cell(1).draw(pi, x, y);
+ pi.base.font.setColor(origcol);
+ setPosCache(pi, x, y);
}
void MathColorInset::write(WriteStream & os) const
{
- os << "\\color" << '{' << cell(0) << '}' << '{' << cell(1) << '}';
+ if (oldstyle_)
+ os << "{\\color" << '{' << cell(0) << '}' << cell(1) << '}';
+ else
+ os << "\\textcolor" << '{' << cell(0) << "}{" << cell(1) << '}';
}