]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/formulamacro.C
fix typo that put too many include paths for most people
[lyx.git] / src / mathed / formulamacro.C
index 01e934b4f436dc01fb10297aa6234d21228a4a45..48d87cf4034d14b8e17dff0510a6c949aa7e7ec2 100644 (file)
@@ -1,9 +1,9 @@
 /*
  *  File:        formulamacro.C
  *  Purpose:     Implementation of the formula macro LyX inset
- *  Author:      André Pönitz
+ *  Author:      André Pönitz, based on ideas of Alejandro Aguilar Sierra
  *  Created:     March 2001
- *  Description: Allows the edition of math macros inside Lyx. 
+ *  Description: Allows the edition of math macros inside Lyx.
  *
  *  Copyright: 2001  The LyX Project
  *
 #include "math_cursor.h"
 #include "math_parser.h"
 #include "math_macro.h"
-#include "math_macroarg.h"
 #include "math_macrotable.h"
-#include "math_macrotemplate.h"
-#include "math_hullinset.h"
-#include "lyx_main.h"
+#include "math_support.h"
+#include "math_mathmlstream.h"
 #include "BufferView.h"
 #include "gettext.h"
 #include "Painter.h"
 #include "font.h"
 #include "support/lyxlib.h"
-#include "mathed/math_support.h"
 #include "support/LOstream.h"
 #include "debug.h"
 #include "lyxlex.h"
 #include "lyxtext.h"
 #include "lyxfont.h"
-#include "math_mathmlstream.h"
 
 using std::ostream;
 
@@ -51,16 +47,17 @@ InsetFormulaMacro::InsetFormulaMacro()
 }
 
 
-InsetFormulaMacro::InsetFormulaMacro(string nm, int na)
+InsetFormulaMacro::InsetFormulaMacro(string const & name, int nargs)
 {
-       setInsetName(nm);
-       MathMacroTable::create(nm, na, string());
+       setInsetName(name);
+       MathMacroTable::create(name, nargs);
 }
 
 
 InsetFormulaMacro::InsetFormulaMacro(string const & s)
 {
-       string name = mathed_parse_macro(s);
+       string name;
+       mathed_parse_macro(name, s);
        setInsetName(name);
 }
 
@@ -74,15 +71,15 @@ Inset * InsetFormulaMacro::clone(Buffer const &, bool) const
 void InsetFormulaMacro::write(Buffer const *, ostream & os) const
 {
        os << "FormulaMacro ";
-       WriteStream wi(os, false);
+       WriteStream wi(os, false, false);
        par()->write(wi);
 }
 
 
-int InsetFormulaMacro::latex(Buffer const *, ostream & os, bool fragile, 
+int InsetFormulaMacro::latex(Buffer const *, ostream & os, bool fragile,
                             bool /*free_spacing*/) const
 {
-       WriteStream wi(os, fragile);
+       WriteStream wi(os, fragile, true);
        par()->write(wi);
        return 2;
 }
@@ -90,7 +87,7 @@ int InsetFormulaMacro::latex(Buffer const *, ostream & os, bool fragile,
 
 int InsetFormulaMacro::ascii(Buffer const *, ostream & os, int) const
 {
-       WriteStream wi(os, false);
+       WriteStream wi(os, false, true);
        par()->write(wi);
        return 0;
 }
@@ -110,7 +107,8 @@ int InsetFormulaMacro::docbook(Buffer const * buf, ostream & os) const
 
 void InsetFormulaMacro::read(Buffer const *, LyXLex & lex)
 {
-       string name = mathed_parse_macro(lex);
+       string name;
+       mathed_parse_macro(name, lex);
        setInsetName(name);
        //lyxerr << "metrics disabled";
        metrics();
@@ -142,38 +140,6 @@ int InsetFormulaMacro::width(BufferView * bv, LyXFont const & f) const
 }
 
 
-
-UpdatableInset::RESULT
-InsetFormulaMacro::localDispatch(BufferView * bv,
-                                kb_action action, string const & arg)
-{
-       RESULT result = DISPATCHED;
-       switch (action) {
-               case LFUN_MATH_MACROARG: {
-                       int const i = lyx::atoi(arg);
-                       lyxerr << "inserting macro arg " << i << "\n";
-                       //if (i > 0 && i <= par()->numargs()) {
-                               mathcursor->insert(MathAtom(new MathMacroArgument(i)));
-                               updateLocal(bv, true);
-                       //} else {
-                       //      lyxerr << "not in range 0.." << par()->numargs() << "\n";
-                       //}
-                       break;
-               }
-               
-               default: {
-                       result = InsetFormulaBase::localDispatch(bv, action, arg);
-                       // force redraw if anything happened
-                       if (result != UNDISPATCHED) {
-                               bv->text->status(bv, LyXText::NEED_MORE_REFRESH);
-                               bv->updateInset(this, false);
-                       }
-               }
-       }
-       return result;
-}
-
-
 MathAtom const & InsetFormulaMacro::par() const
 {
        return MathMacroTable::provide(getInsetName());
@@ -206,7 +172,7 @@ void InsetFormulaMacro::draw(BufferView * bv, LyXFont const & f,
 
        // label
        font.setColor(LColor::math);
-       
+
        int const a = y - ascent(bv, font) + 1;
        int const w = width(bv, font) - 2;
        int const h = ascent(bv, font) + descent(bv, font) - 2;
@@ -227,4 +193,3 @@ void InsetFormulaMacro::draw(BufferView * bv, LyXFont const & f,
        yo_ = y;
        par()->draw(pain, xo_, yo_);
 }
-