4 * Main LyX Inset for defining math macros
6 * \author Alejandro Aguilar Sierra
9 * Full author contact details are available in file CREDITS
11 * You are free to use and modify this code under the terms of
12 * the GNU General Public Licence version 2 or later.
15 #ifndef INSET_FORMULA_MACRO_H
16 #define INSET_FORMULA_MACRO_H
18 #include "formulabase.h"
21 class MathMacroTemplate;
23 // An InsetFormulaMacro only knows its name and asks the global
24 // MathMacroTable if it needs to know more.
27 class InsetFormulaMacro : public InsetFormulaBase {
31 /// construct a macro hull from its name and the number of arguments
32 explicit InsetFormulaMacro(string const & name, int nargs);
33 /// constructs a mocro from its LaTeX definition
34 explicit InsetFormulaMacro(string const & s);
36 void dimension(BufferView *, LyXFont const &, Dimension &) const;
38 void draw(BufferView *, LyXFont const &, int, float &) const;
41 void read(Buffer const *, LyXLex & lex);
43 void write(Buffer const *, std::ostream & os) const;
45 int ascii(Buffer const *, std::ostream &, int linelen) const;
47 int latex(Buffer const *, std::ostream & os, bool fragile, bool free_spc) const;
49 int linuxdoc(Buffer const *, std::ostream & os) const;
51 int docbook(Buffer const *, std::ostream &, bool mixcont) const;
54 Inset * clone(Buffer const &, bool same_id = false) const;
56 Inset::Code lyxCode() const;
58 MathAtom const & par() const;
63 void read(std::istream & is);
65 string prefix() const;