]> git.lyx.org Git - lyx.git/blobdiff - src/factory.cpp
Fulfill promise to Andre: TextClass_ptr --> TextClassPtr.
[lyx.git] / src / factory.cpp
index 09296591dae5ab252c6d9c5a77a14192f33808a0..cb5c15d36d60e7eab98351841824f548e6ae9d9b 100644 (file)
 #include "Color.h"
 #include "Lexer.h"
 #include "LyX.h"
-#include "Paragraph.h"
 
 #include "insets/InsetBibitem.h"
 #include "insets/InsetBibtex.h"
 #include "insets/InsetCaption.h"
 #include "insets/InsetCitation.h"
-#include "insets/InsetCharStyle.h"
+#include "insets/InsetFlex.h"
 #include "insets/InsetEnvironment.h"
 #include "insets/InsetERT.h"
 #include "insets/InsetListings.h"
 
 #include <sstream>
 
+using std::auto_ptr;
+using std::endl;
+using std::string;
+
 
 namespace lyx {
 
@@ -76,14 +79,10 @@ namespace Alert = frontend::Alert;
 
 using support::compare_ascii_no_case;
 
-using std::auto_ptr;
-using std::endl;
-using std::string;
-
 
 Inset * createInset(BufferView * bv, FuncRequest const & cmd)
 {
-       BufferParams const & params = bv->buffer()->params();
+       BufferParams const & params = bv->buffer().params();
 
        try {
 
@@ -103,14 +102,11 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                case LFUN_CLEARDOUBLEPAGE_INSERT:
                        return new InsetClearDoublePage;
 
-               case LFUN_CHARSTYLE_INSERT: {
+               case LFUN_FLEX_INSERT: {
                        string s = cmd.getArg(0);
                        TextClass tclass = params.getTextClass();
-                       CharStyles::iterator found_cs = tclass.charstyle(s);
-                       if (found_cs != tclass.charstyles().end())
-                               return new InsetCharStyle(params, found_cs);
-                       else
-                               return new InsetCharStyle(params, s);
+                       InsetLayout il = tclass.insetlayout(from_utf8(s));
+                       return new InsetFlex(params, il);
                }
 
                case LFUN_NOTE_INSERT: {
@@ -177,7 +173,7 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                        string const argument = to_utf8(cmd.argument());
                        if (argument == "figure")
                                return new InsetWrap(params, argument);
-                       lyxerr << "Non-existent floatflt type: " << argument << endl;
+                       lyxerr << "Non-existent wrapfig type: " << argument << endl;
                        return 0;
                }
 
@@ -208,7 +204,7 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                                r = 2;
                        if (c <= 0)
                                c = 2;
-                       return new InsetTabular(*bv->buffer(), r, c);
+                       return new InsetTabular(bv->buffer(), r, c);
                }
 
                case LFUN_CAPTION_INSERT: {
@@ -229,7 +225,7 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                        return new InsetTOC(InsetCommandParams("tableofcontents"));
 
                case LFUN_ENVIRONMENT_INSERT:
-                       return new InsetEnvironment(params, to_utf8(cmd.argument()));
+                       return new InsetEnvironment(params, cmd.argument());
 
 #if 0
                case LFUN_LIST_INSERT:
@@ -264,14 +260,14 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                                InsetCollapsable::CollapseStatus st;
                                InsetERTMailer::string2params(to_utf8(cmd.argument()), st);
                                return new InsetERT(params, st);
-                       
+
                        } else if (name == "listings") {
                                InsetListingsParams par;
                                InsetListingsMailer::string2params(to_utf8(cmd.argument()), par);
                                return new InsetListings(params, par);
 
                        } else if (name == "external") {
-                               Buffer const & buffer = *bv->buffer();
+                               Buffer const & buffer = bv->buffer();
                                InsetExternalParams iep;
                                InsetExternalMailer::string2params(to_utf8(cmd.argument()),
                                        buffer, iep);
@@ -280,7 +276,7 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                                return inset.release();
 
                        } else if (name == "graphics") {
-                               Buffer const & buffer = *bv->buffer();
+                               Buffer const & buffer = bv->buffer();
                                InsetGraphicsParams igp;
                                InsetGraphicsMailer::string2params(to_utf8(cmd.argument()),
                                        buffer, igp);
@@ -315,7 +311,7 @@ Inset * createInset(BufferView * bv, FuncRequest const & cmd)
                                InsetCommandParams icp(name);
                                InsetCommandMailer::string2params(name, to_utf8(cmd.argument()),
                                        icp);
-                               return new InsetRef(icp, *bv->buffer());
+                               return new InsetRef(icp, bv->buffer());
 
                        } else if (name == "toc") {
                                InsetCommandParams icp("tableofcontents");
@@ -411,8 +407,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
                // the various \\footcite commands. We should increase the
                // file format number and read these commands here, too.
                // Then we should use is_possible_cite_command() in
-               // src/frontends/controllers/frontend_helpers.cpp to test for valid cite
-               // commands.
+               // InsetCitation to test for valid cite commands.
                if (compare_ascii_no_case(cmdName.substr(0,4), "cite") == 0) {
                        inset.reset(new InsetCitation(inscmd));
                } else if (cmdName == "bibitem") {
@@ -474,16 +469,11 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
                        inset.reset(new InsetNote(buf.params(), tmptok));
                } else if (tmptok == "Box") {
                        inset.reset(new InsetBox(buf.params(), tmptok));
-               } else if (tmptok == "CharStyle") {
+               } else if (tmptok == "Flex") {
                        lex.next();
                        string s = lex.getString();
-                       CharStyles::iterator found_cs = tclass.charstyle(s);
-                       if (found_cs != tclass.charstyles().end())
-                               inset.reset(new InsetCharStyle(buf.params(), found_cs));
-                       else {
-                               // "Undefined" inset
-                               inset.reset(new InsetCharStyle(buf.params(), s));
-                       }
+                       InsetLayout il = tclass.insetlayout(from_utf8(s));
+                       inset.reset(new InsetFlex(buf.params(), il));
                } else if (tmptok == "Branch") {
                        inset.reset(new InsetBranch(buf.params(),
                                                    InsetBranchParams()));
@@ -492,7 +482,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
                        inset.reset(new InsetInclude(p));
                } else if (tmptok == "Environment") {
                        lex.next();
-                       inset.reset(new InsetEnvironment(buf.params(), lex.getString()));
+                       inset.reset(new InsetEnvironment(buf.params(), lex.getDocString()));
                } else if (tmptok == "ERT") {
                        inset.reset(new InsetERT(buf.params()));
                } else if (tmptok == "listings") {
@@ -539,9 +529,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
 
                inset->read(buf, lex);
 
-#ifdef WITH_WARNINGS
-#warning hack..
-#endif
+// FIXME: hack..
                if (inset->lyxCode() == Inset::MATHMACRO_CODE) {
                        MathMacroTemplate const * tmpl =
                                static_cast<MathMacroTemplate*>(inset.get());