]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_macrotemplate.h
everything is an inset. sizeof(MathInset) == 36 on IA32
[lyx.git] / src / mathed / math_macrotemplate.h
index 179f4da10a3919721d73e3692214ee79b31ac136..b7f138b6397f078c817fe57478f0d4be537b64d0 100644 (file)
@@ -1,59 +1,43 @@
 // -*- C++ -*-
-#ifndef MATHMACROTEMPLATE
-#define MATHMACROTEMPLATE
+#ifndef MATH_MACROTEMPLATE_H
+#define MATH_MACROTEMPLATE_H
 
-#include <vector>
+#include "math_nestinset.h"
 
-#include "math_parinset.h"
-#include "math_macroarg.h"
+#ifdef __GNUG__
+#pragma interface
+#endif
 
 class MathMacro;
 
-/// This class contains the macro definition
-class MathMacroTemplate : public MathParInset {
+/** This class contains the macro definition
+    \author Alejandro Aguilar Sierra
+ */
+//class MathMacroTemplate : public MathInset, boost::noncopyable 
+
+class MathMacroTemplate : public MathNestInset {
 public:
-       /// A template constructor needs all the data
-       explicit
-       MathMacroTemplate(string const &, int na = 0, int f = 0);
-       ///
-       ~MathMacroTemplate();
        ///
-       void draw(Painter &, int, int);
+       MathMacroTemplate();
        ///
-       void Metrics();
+       MathMacroTemplate(string const & name, int nargs);
        ///
-       void WriteDef(std::ostream &, bool fragile);
-       /// useful for special insets
-       void  setTCode(MathedTextCodes t);
+       MathInset * clone() const;
        ///
-       MathedTextCodes getTCode() const;
-       /// 
-       void setArgument(MathedArray *, int i= 0);
+       void write(std::ostream &, bool fragile) const;
        /// Number of arguments
-       int getNoArgs() const;
-       ///
-       void GetMacroXY(int, int &, int &) const;
-       ///
-       MathParInset * getMacroPar(int) const;
+       int numargs() const;
        ///
-       void SetMacroFocus(int &, int, int);
+       void numargs(int);
        ///
-       void setEditMode(bool);
-       
-       /// Replace the appropriate arguments with a specific macro's data
-       void update(MathMacro * m = 0);
+       void draw(Painter &, int, int);
        ///
-       short flags() const {
-               return flags_;
-       }
+       void metrics(MathStyles st);
 private:
        ///
-       short flags_;
-       ///
-       MathedTextCodes tcode_;
-       ///
-       std::vector<MathMacroArgument> args_;
-       ///
-       int nargs_;
+       int numargs_;
+       /// unimplemented
+       void operator=(MathMacroTemplate const &);
 };
+
 #endif