X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmathed%2FInsetMathColor.cpp;h=6cb996013b13d10682c788733f0edba5d66ad9f7;hb=c8230ab0d0a919530c43c29395f4d9961498bf15;hp=eb5ed56ca5f81bd1bd05921e168ddbb9e1de6bd3;hpb=237c132c1e6fc720b87f2fea6deb18a8395cbe0a;p=lyx.git diff --git a/src/mathed/InsetMathColor.cpp b/src/mathed/InsetMathColor.cpp index eb5ed56ca5..6cb996013b 100644 --- a/src/mathed/InsetMathColor.cpp +++ b/src/mathed/InsetMathColor.cpp @@ -3,32 +3,40 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ #include +#include "ColorSet.h" + #include "InsetMathColor.h" +#include "LaTeXFeatures.h" #include "MathData.h" #include "MathStream.h" #include "MathSupport.h" -#include "LaTeXFeatures.h" +#include "MetricsInfo.h" + +#include "support/gettext.h" +#include "support/lstrings.h" -#include "support/std_ostream.h" +#include +using namespace lyx::support; namespace lyx { -InsetMathColor::InsetMathColor(bool oldstyle, Color_color const & color) - : InsetMathNest(1), oldstyle_(oldstyle), +InsetMathColor::InsetMathColor(Buffer * buf, bool oldstyle, ColorCode color) + : InsetMathNest(buf, 1), w_(0), oldstyle_(oldstyle), color_(from_utf8(lcolor.getLaTeXName(color))) {} -InsetMathColor::InsetMathColor(bool oldstyle, docstring const & color) - : InsetMathNest(1), oldstyle_(oldstyle), color_(color) +InsetMathColor::InsetMathColor(Buffer * buf, bool oldstyle, + docstring const & color) + : InsetMathNest(buf, 1), w_(0), oldstyle_(oldstyle), color_(color) {} @@ -41,19 +49,15 @@ Inset * InsetMathColor::clone() const void InsetMathColor::metrics(MetricsInfo & mi, Dimension & dim) const { cell(0).metrics(mi, dim); - metricsMarkers(dim); - dim_ = dim; } void InsetMathColor::draw(PainterInfo & pi, int x, int y) const { - Color_color origcol = pi.base.font.color(); + ColorCode origcol = pi.base.font.color(); pi.base.font.setColor(lcolor.getFromLaTeXName(to_utf8(color_))); - cell(0).draw(pi, x + 1, y); + cell(0).draw(pi, x, y); pi.base.font.setColor(origcol); - drawMarkers(pi, x, y); - setPosCache(pi, x, y); } @@ -67,8 +71,26 @@ static bool normalcolor(docstring const & color) void InsetMathColor::validate(LaTeXFeatures & features) const { InsetMathNest::validate(features); - if (!normalcolor(color_)) - features.require("color"); + if (!normalcolor(color_)) { + switch (lcolor.getFromLaTeXName(to_utf8(color_))) { + case Color_brown: + case Color_darkgray: + case Color_gray: + case Color_lightgray: + case Color_lime: + case Color_olive: + case Color_orange: + case Color_pink: + case Color_purple: + case Color_teal: + case Color_violet: + features.require("xcolor"); + break; + default: + features.require("color"); + break; + } + } } @@ -92,7 +114,7 @@ void InsetMathColor::normalize(NormalStream & os) const void InsetMathColor::infoize(odocstream & os) const { - os << "Color: " << color_; + os << bformat(_("Color: %1$s"), color_); }