3 * \file InsetMathSymbol.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef MATH_SYMBOLINSET_H
13 #define MATH_SYMBOLINSET_H
15 #include "InsetMath.h"
24 /** "normal" symbols that don't take limits and don't grow in displayed
27 class InsetMathSymbol : public InsetMath {
30 explicit InsetMathSymbol(latexkeys const * l);
32 explicit InsetMathSymbol(char const * name);
34 explicit InsetMathSymbol(docstring const & name);
36 void metrics(MetricsInfo & mi, Dimension & dim) const;
38 Dimension const dimension(BufferView const &) const { return dim_; }
40 void draw(PainterInfo &, int x, int y) const;
42 int kerning() const { return kerning_; }
47 bool isOrdAlpha() const;
48 /// do we take scripts?
49 bool isScriptable() const;
50 /// do we take \limits or \nolimits?
51 bool takesLimits() const;
52 /// identifies SymbolInset as such
53 InsetMathSymbol const * asSymbolInset() const { return this; }
54 /// the LaTeX name of the symbol (without the backslash)
55 docstring name() const;
56 /// request "external features"
57 void validate(LaTeXFeatures & features) const;
60 void normalize(NormalStream &) const;
62 void maple(MapleStream &) const;
64 void maxima(MaximaStream &) const;
66 void mathematica(MathematicaStream &) const;
68 void mathmlize(MathStream &) const;
70 void octave(OctaveStream &) const;
72 void write(WriteStream & os) const;
74 void infoize2(odocstream & os) const;
77 virtual Inset * clone() const;
79 latexkeys const * sym_;
82 /// cached superscript kerning
85 mutable bool scriptable_;
86 /// FIXME: move this out to BufferView
87 mutable Dimension dim_;