]> git.lyx.org Git - lyx.git/blobdiff - src/factory.C
de.po updated
[lyx.git] / src / factory.C
index ac1368b63010f617c2b058786f91e3e5c4c7a707..9fac9fc92585586c29fb71dea0af98587117ee49 100644 (file)
@@ -1,3 +1,14 @@
+/**
+ * \file factory.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS
+ */
+
+#include <config.h>
 
 #include "funcrequest.h"
 #include "bufferparams.h"
 #include "FloatList.h"
 #include "debug.h"
 #include "BufferView.h"
+#include "lyxtext.h"
+
+#include "insets/insetcaption.h"
 #include "insets/insetert.h"
 #include "insets/insetexternal.h"
 #include "insets/insetfloat.h"
 #include "insets/insetfoot.h"
+#include "insets/insetindex.h"
 #include "insets/insetmarginal.h"
 #include "insets/insetminipage.h"
 #include "insets/insetnote.h"
 #include "insets/insetref.h"
 #include "insets/insettabular.h"
 #include "insets/insettext.h"
+#include "insets/insettoc.h"
+#include "insets/inseturl.h"
+#include "insets/insetwrap.h"
 #include "frontends/Dialogs.h"
 #include "frontends/LyXView.h"
 
 #include <cstdio>
 
+using std::endl;
 
 Inset * createInset(FuncRequest const & cmd)
 {
@@ -67,6 +86,22 @@ Inset * createInset(FuncRequest const & cmd)
                        lyxerr << "Non-existent float type: " << cmd.argument << endl;
                        return 0;
 
+               case LFUN_INSET_WRAP:
+                       if (cmd.argument == "figure")
+                               return new InsetWrap(params, cmd.argument);
+                       lyxerr << "Non-existent floatflt type: " << cmd.argument << endl;
+                       return 0;
+
+               case LFUN_INDEX_INSERT: {
+                       string entry = cmd.argument;
+                       if (entry.empty())
+                               entry = bv->getLyXText()->getStringToIndex(bv);
+                       if (!entry.empty())
+                               return new InsetIndex(InsetCommandParams("index", entry));
+                       bv->owner()->getDialogs().createIndex();
+                       return 0;
+               }
+
                case LFUN_TABULAR_INSERT:
                        if (!cmd.argument.empty()) {
                                int r = 2;
@@ -77,6 +112,36 @@ Inset * createInset(FuncRequest const & cmd)
                        bv->owner()->getDialogs().showTabularCreate();
                        return 0;
 
+               case LFUN_INSET_CAPTION:
+                       if (bv->theLockingInset()) {
+                               lyxerr << "Locking inset code: "
+                                                        << static_cast<int>(bv->theLockingInset()->lyxCode());
+                               InsetCaption * inset = new InsetCaption(params);
+                               inset->setOwner(bv->theLockingInset());
+                               inset->setAutoBreakRows(true);
+                               inset->setDrawFrame(0, InsetText::LOCKED);
+                               inset->setFrameColor(0, LColor::captionframe);
+                               return inset;
+                       }
+                       return 0;
+
+               case LFUN_INDEX_PRINT:
+                       return new InsetPrintIndex(InsetCommandParams("printindex"));
+
+               case LFUN_TOC_INSERT:
+                       return new InsetTOC(InsetCommandParams("tableofcontents"));
+
+               case LFUN_PARENTINSERT:
+                       return new InsetParent(
+                               InsetCommandParams("lyxparent", cmd.argument), *bv->buffer());
+
+               case LFUN_INSERT_URL:
+               {
+                       InsetCommandParams p;
+                       p.setFromString(cmd.argument);
+                       return new InsetUrl(p);
+               }
+
        #if 0
                case LFUN_INSET_LIST:
                        return new InsetList;
@@ -90,5 +155,3 @@ Inset * createInset(FuncRequest const & cmd)
        }
        return 0;
 }
-
-