3 * \file InsetMathDelim.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Alejandro Aguilar Sierra
10 * Full author contact details are available in file CREDITS.
13 #ifndef MATH_DELIMINSET_H
14 #define MATH_DELIMINSET_H
16 #include "InsetMathNest.h"
21 /// A delimiter like '{' or '(' or '<'
22 class InsetMathDelim : public InsetMathNest {
25 InsetMathDelim(Buffer * buf, docstring const & left, docstring const & right);
27 InsetMathDelim(Buffer * buf, docstring const & left, docstring const & right,
30 InsetMathDelim * asDelimInset() override { return this; }
32 InsetMathDelim const * asDelimInset() const override { return this; }
34 MathClass mathClass() const override { return MC_INNER; }
36 bool isParenthesis() const;
38 bool isBrackets() const;
42 mode_type currentMode() const override { return MATH_MODE; }
44 void metrics(MetricsInfo & mi, Dimension & dim) const override;
46 void draw(PainterInfo &, int x, int y) const override;
49 void validate(LaTeXFeatures & features) const override;
51 void write(TeXMathStream & os) const override;
52 /// write normalized content
53 void normalize(NormalStream &) const override;
55 void maple(MapleStream &) const override;
57 void maxima(MaximaStream &) const override;
59 void mathematica(MathematicaStream &) const override;
61 void mathmlize(MathMLStream &) const override;
63 void htmlize(HtmlStream &) const override;
65 void octave(OctaveStream &) const override;
67 InsetCode lyxCode() const override { return MATH_DELIM_CODE; }
73 Inset * clone() const override;