]> git.lyx.org Git - lyx.git/blobdiff - src/factory.cpp
Allow automatic text direction in Painter::text()
[lyx.git] / src / factory.cpp
index 2ffa85018c1666ab32b1a8b57d688aec03ed2433..b8d94336b9f74294f14d61161e360294a9251d23 100644 (file)
@@ -52,6 +52,7 @@
 #include "insets/InsetPreview.h"
 #include "insets/InsetRef.h"
 #include "insets/InsetScript.h"
+#include "insets/InsetSeparator.h"
 #include "insets/InsetSpace.h"
 #include "insets/InsetTabular.h"
 #include "insets/InsetTOC.h"
@@ -99,6 +100,22 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd)
                        return new InsetNewpage(inp);
                }
 
+               case LFUN_SEPARATOR_INSERT: {
+                       string const name = cmd.getArg(0);
+                       InsetSeparatorParams inp;
+                       if (name.empty() || name == "plain")
+                               inp.kind = InsetSeparatorParams::PLAIN;
+                       else if (name == "parbreak")
+                               inp.kind = InsetSeparatorParams::PARBREAK;
+                       else if (name == "latexpar")
+                               inp.kind = InsetSeparatorParams::LATEXPAR;
+                       else {
+                               lyxerr << "Wrong argument for LyX function 'separator-insert'." << endl;
+                               break;
+                       }
+                       return new InsetSeparator(inp);
+               }
+
                case LFUN_FLEX_INSERT: {
                        string s = cmd.getArg(0);
                        return new InsetFlex(buf, s);
@@ -523,7 +540,7 @@ Inset * readInset(Lexer & lex, Buffer * buf)
                //Worst case, we could put it in each case below. Better, we could
                //pass the lexer to the constructor and let the params be built there.
                InsetCommandParams inscmd(code);
-               inscmd.read(lex);
+               inscmd.Read(lex, buf);
 
                switch (code) {
                        case BIBITEM_CODE:
@@ -627,6 +644,8 @@ Inset * readInset(Lexer & lex, Buffer * buf)
                        inset.reset(new InsetNewpage);
                } else if (tmptok == "Newline") {
                        inset.reset(new InsetNewline);
+               } else if (tmptok == "Separator") {
+                       inset.reset(new InsetSeparator);
                } else if (tmptok == "Argument") {
                        inset.reset(new InsetArgument(buf, tmptok));
                } else if (tmptok == "Float") {