#include "InsetMathNest.h"
-#include "support/docstream.h"
namespace lyx {
class InsetMathColor : public InsetMathNest {
public:
/// Create a color inset from LyX color number
- explicit InsetMathColor(bool oldstyle,
- ColorCode color = Color_none);
+ InsetMathColor(Buffer * buf, bool oldstyle, ColorCode color = Color_none);
/// Create a color inset from LaTeX color name
- explicit InsetMathColor(bool oldstyle, docstring const & color);
+ InsetMathColor(Buffer * buf, bool oldstyle, docstring const & color);
///
- void metrics(MetricsInfo & mi, Dimension & dim) const;
+ void metrics(MetricsInfo & mi, Dimension & dim) const override;
/// we write extra braces in any case...
/// FIXME Why? Are they necessary if oldstyle_ == false?
- bool extraBraces() const { return true; }
+ bool extraBraces() const override { return true; }
///
- void draw(PainterInfo & pi, int x, int y) const;
+ void draw(PainterInfo & pi, int x, int y) const override;
/// we need package color
- void validate(LaTeXFeatures & features) const;
+ void validate(LaTeXFeatures & features) const override;
+ /// we inherit the mode
+ mode_type currentMode() const override { return current_mode_; }
+ ///
+ void write(TeXMathStream & os) const override;
+ /// FIXME XHTML For now, we do nothing with color.
+ void mathmlize(MathMLStream &) const override {}
+ /// FIXME XHTML For now, we do nothing with color.
+ void htmlize(HtmlStream &) const override {}
///
- void write(WriteStream & os) const;
/// write normalized content
- void normalize(NormalStream & ns) const;
+ void normalize(NormalStream & ns) const override;
+ ///
+ void infoize(odocstream & os) const override;
///
- void infoize(odocstream & os) const;
+ InsetCode lyxCode() const override { return MATH_COLOR_CODE; }
private:
- virtual Inset * clone() const;
- /// width of '[' in current font
- mutable int w_;
+ Inset * clone() const override;
///
bool oldstyle_;
/// Our color. Only valid LaTeX colors are allowed.
docstring color_;
+ /// the inherited mode
+ mutable mode_type current_mode_;
};