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,
48 LatexRunParams const &) const;
50 int linuxdoc(Buffer const *, std::ostream & os) const;
52 int docbook(Buffer const *, std::ostream &, bool mixcont) const;
55 Inset * clone(Buffer const &, bool same_id = false) const;
57 Inset::Code lyxCode() const;
59 MathAtom const & par() const;
64 void read(std::istream & is);
66 string prefix() const;