]> git.lyx.org Git - lyx.git/blobdiff - src/factory.C
Simplify the mechanics of generating the 'inactive' pixmap.
[lyx.git] / src / factory.C
index 727939de48b7877834502a7c2ab17ba9234d64d4..8d3b9b6ac10bcf0ceea4373ab80158f84bb22268 100644 (file)
@@ -53,7 +53,7 @@
 #include "insets/insetvspace.h"
 #include "insets/insetwrap.h"
 
-#include "mathed/formulamacro.h"
+#include "mathed/math_macrotemplate.h"
 #include "mathed/math_hullinset.h"
 
 #include "frontends/Dialogs.h"
@@ -185,7 +185,6 @@ InsetBase * createInset(BufferView * bv, FuncRequest const & cmd)
                UpdatableInset * up = bv->cursor().inset().asUpdatableInset();
                if (!up) {
                        auto_ptr<InsetCaption> inset(new InsetCaption(params));
-                       inset->setOwner(up);
                        inset->setAutoBreakRows(true);
                        inset->setDrawFrame(InsetText::LOCKED);
                        inset->setFrameColor(LColor::captionframe);
@@ -342,7 +341,7 @@ InsetBase * readInset(LyXLex & lex, Buffer const & buf)
        auto_ptr<InsetBase> inset;
 
        LyXTextClass tclass = buf.params().getLyXTextClass();
-               
+
        lex.next();
        string tmptok = lex.getString();
 
@@ -404,7 +403,7 @@ InsetBase * readInset(LyXLex & lex, Buffer const & buf)
                } else if (tmptok == "External") {
                        inset.reset(new InsetExternal);
                } else if (tmptok == "FormulaMacro") {
-                       inset.reset(new InsetFormulaMacro);
+                       inset.reset(new MathMacroTemplate);
                } else if (tmptok == "Formula") {
                        inset.reset(new MathHullInset);
                } else if (tmptok == "Graphics") {
@@ -470,6 +469,17 @@ InsetBase * readInset(LyXLex & lex, Buffer const & buf)
                }
 
                inset->read(buf, lex);
+
+#ifdef WITH_WARNINGS
+#warning hack..
+#endif
+               if (inset->lyxCode() == InsetBase::MATHMACRO_CODE) {
+                       MathMacroTemplate const * tmpl =
+                               static_cast<MathMacroTemplate*>(inset.get());
+                       MacroTable::globalMacros().insert
+                               (tmpl->name(), tmpl->asMacroData());
+                       lyxerr << "creating local macro " << tmpl->name() << endl;
+               }
        }
 
        return inset.release();