]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathChar.h
Revert "Fix a number of signedness warnings"
[lyx.git] / src / mathed / InsetMathChar.h
index bc357bcadba16356afc1bf5a6e909109be785592..64e9ad0f6e3afd9569f47c6b6117f3846c1eb3d6 100644 (file)
@@ -4,7 +4,7 @@
  * 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 "InsetMath.h"
 
-#include "Font.h"
-
 namespace lyx {
 
+class latexkeys;
+
 /// The base character inset.
 class InsetMathChar : public InsetMath {
 public:
        ///
        explicit InsetMathChar(char_type c);
        ///
-       bool metrics(MetricsInfo & mi, Dimension & dim) const;
+       void metrics(MetricsInfo & mi, Dimension & dim) const override;
        ///
-       void draw(PainterInfo & pi, int x, int y) const;
+       void draw(PainterInfo & pi, int x, int y) const override;
        ///
-       void metricsT(TextMetricsInfo const & mi, Dimension & dim) const;
+       void metricsT(TextMetricsInfo const & mi, Dimension & dim) const override;
        ///
-       void drawT(TextPainter &, int x, int y) const;
+       void drawT(TextPainter &, int x, int y) const override;
        ///
-       int kerning() const { return kerning_; }
+       int kerning(BufferView const *) const override { return kerning_; }
 
        ///
-       void write(WriteStream & os) const;
+       void write(WriteStream & os) const override;
+       ///
+       void validate(LaTeXFeatures & features) const override;
        ///
-       void normalize(NormalStream & ns) const;
+       void normalize(NormalStream & ns) const override;
        ///
-       void octave(OctaveStream & os) const;
+       void octave(OctaveStream & os) const override;
        ///
-       void mathmlize(MathStream & ms) const;
+       void mathmlize(MathStream & ms) const override;
+       ///
+       void htmlize(HtmlStream & ms) const override;
        /// identifies Charinsets
-       InsetMathChar const * asCharInset() const { return this; }
+       InsetMathChar const * asCharInset() const override { return this; }
+       ///
+       char_type getChar() const override { return char_; }
        ///
-       char_type getChar() const { return char_; }
+       MathClass mathClass() const override;
        ///
-       bool isRelOp() const;
+       InsetCode lyxCode() const override { return MATH_CHAR_CODE; }
 
 private:
-       virtual std::auto_ptr<Inset> doClone() const;
+       Inset * clone() const override;
        /// the character
-       char_type char_;
+       char_type const char_;
        /// cached kerning for superscript
        mutable int kerning_;
+       /// Inset to substitute char for, for on-screen display in math mode, as
+       /// performed by LaTeX (#9893):
+       /// * -> \ast (U+2217)
+       /// - -> \lyxminus (U+2212)
+       /// : -> \ordinarycolon (U+2236)
+       ///
+       /// For cosmetic reasons, +, >, <, and = are also substituted to force the
+       /// use of CM fonts for uniformity. If CM fonts are replaced with unicode
+       /// math fonts, this should be removed, and substitutions of "'", ",", and
+       /// ";" added.
        ///
-       mutable Font font_cache_;
+       /// Null if there is no substitute.
+       latexkeys const * const subst_;
 };
 
 } // namespace lyx