2 #ifndef MATHMACROTEMPLATE
3 #define MATHMACROTEMPLATE
7 #include <boost/utility.hpp>
8 //#include <boost/smart_ptr.hpp>
10 #include "math_parinset.h"
11 #include "math_macroarg.h"
19 /** This class contains the macro definition
20 \author Alejandro Aguilar Sierra
22 class MathMacroTemplate : public MathParInset, boost::noncopyable {
24 friend class MathMacro;
26 /// A template constructor needs all the data
28 MathMacroTemplate(string const &, int na);
30 void draw(Painter &, int, int);
34 void WriteDef(std::ostream &, bool fragile);
35 /// useful for special insets
36 void setTCode(MathedTextCodes t);
38 MathedTextCodes getTCode() const;
39 /// Number of arguments
40 int getNoArgs() const;
42 void GetMacroXY(int, int &, int &) const;
44 MathParInset * getMacroPar(int) const;
46 void setMacroPar(int, MathedArray const &);
48 void SetMacroFocus(int &, int, int);
50 void setEditMode(bool);
52 /// Are we in edit mode or not?
55 MathedTextCodes tcode_;
57 //std::vector<boost::shared_ptr<MathMacroArgument> > args_;
58 std::vector<MathMacroArgument> args_;