#include "insets/InsetNewpage.h"
#include "insets/InsetNomencl.h"
#include "insets/InsetNote.h"
-#include "insets/InsetOptArg.h"
+#include "insets/InsetArgument.h"
#include "insets/InsetPhantom.h"
+#include "insets/InsetPreview.h"
#include "insets/InsetRef.h"
+#include "insets/InsetScript.h"
#include "insets/InsetSpace.h"
#include "insets/InsetTabular.h"
#include "insets/InsetTOC.h"
Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd)
{
- BufferParams const & params = buf->params();
-
try {
- switch (cmd.action) {
-
- case LFUN_LINE_INSERT:
- return new InsetLine;
+ switch (cmd.action()) {
case LFUN_NEWPAGE_INSERT: {
string const name = cmd.getArg(0);
case LFUN_MARGINALNOTE_INSERT:
return new InsetMarginal(buf);
- case LFUN_OPTIONAL_INSERT:
- return new InsetOptArg(buf);
+ case LFUN_ARGUMENT_INSERT:
+ return new InsetArgument(buf);
case LFUN_FLOAT_INSERT: {
- // check if the float type exists
- string const argument = to_utf8(cmd.argument());
- if (params.documentClass().floats().typeExist(argument))
- return new InsetFloat(buf, argument);
- lyxerr << "Non-existent float type: " << argument << endl;
+ string argument = to_utf8(cmd.argument());
+ if (!argument.empty()) {
+ if (!contains(argument, "sideways")) {
+ if (!contains(argument, "wide"))
+ argument += "\nwide false";
+ argument += "\nsideways false";
+ }
+ }
+ return new InsetFloat(buf, argument);
}
case LFUN_FLOAT_WIDE_INSERT: {
- // check if the float type exists
- string const argument = to_utf8(cmd.argument());
- if (params.documentClass().floats().typeExist(argument)) {
- auto_ptr<InsetFloat> p(new InsetFloat(buf, argument));
- p->setWide(true);
- return p.release();
+ string argument = to_utf8(cmd.argument());
+ if (!argument.empty()) {
+ if (!contains(argument, "sideways")) {
+ if (!contains(argument, "wide"))
+ argument += "\nwide true";
+ argument += "\nsideways false";
+ }
}
- lyxerr << "Non-existent float type: " << argument << endl;
- return 0;
+ InsetFloat * fl = new InsetFloat(buf, argument);
+ fl->setWide(true);
+ return fl;
}
case LFUN_WRAP_INSERT: {
case LFUN_NOMENCL_INSERT: {
InsetCommandParams icp(NOMENCL_CODE);
icp["symbol"] = cmd.argument();
- return new InsetNomencl(icp);
+ return new InsetNomencl(buf, icp);
}
case LFUN_TABULAR_INSERT: {
case LFUN_INDEX_PRINT: {
InsetCommandParams icp(INDEX_PRINT_CODE);
icp["type"] = cmd.argument();
- return new InsetPrintIndex(icp);
+ return new InsetPrintIndex(buf, icp);
}
case LFUN_NOMENCL_PRINT: {
InsetCommandParams icp(NOMENCL_PRINT_CODE);
icp["set_width"] = from_ascii("auto");
- return new InsetPrintNomencl(icp);
+ return new InsetPrintNomencl(buf, icp);
}
- case LFUN_TOC_INSERT:
- return new InsetTOC(InsetCommandParams(TOC_CODE));
-
case LFUN_INFO_INSERT: {
InsetInfo * inset = new InsetInfo(buf, to_utf8(cmd.argument()));
inset->updateInfo();
return inset;
}
+ case LFUN_PREVIEW_INSERT:
+ return new InsetPreview(buf);
+
+ case LFUN_SCRIPT_INSERT: {
+ InsetScriptParams isp;
+ InsetScript::string2params("script script " + to_utf8(cmd.argument()), isp);
+ return new InsetScript(buf, isp);
+ }
+
case LFUN_INSET_INSERT: {
string const name = cmd.getArg(0);
InsetCode code = insetCode(name);
case BIBITEM_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
return new InsetBibitem(buf, icp);
}
case BIBTEX_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
return new InsetBibtex(buf, icp);
}
case CITE_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetCitation(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetCitation(buf, icp);
}
case ERT_CODE: {
return new InsetERT(buf,
InsetERT::string2params(to_utf8(cmd.argument())));
}
-
- case LISTINGS_CODE: {
- InsetListingsParams par;
- InsetListings::string2params(to_utf8(cmd.argument()), par);
- return new InsetListings(buf, par);
- }
case EXTERNAL_CODE: {
InsetExternalParams iep;
case HYPERLINK_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetHyperlink(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetHyperlink(buf, icp);
}
case INCLUDE_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetInclude(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetInclude(buf, icp);
}
case INDEX_CODE: {
case INDEX_PRINT_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetPrintIndex(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetPrintIndex(buf, icp);
}
- case NOMENCL_CODE: {
+ case LABEL_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetNomencl(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetLabel(buf, icp);
}
- case LABEL_CODE: {
+ case LINE_CODE: {
+ InsetCommandParams icp(code);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetLine(buf, icp);
+ }
+
+ case LISTINGS_CODE: {
+ InsetListingsParams par;
+ InsetListings::string2params(to_utf8(cmd.argument()), par);
+ return new InsetListings(buf, par);
+ }
+
+ case NOMENCL_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetLabel(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetNomencl(buf, icp);
}
case REF_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
return new InsetRef(buf, icp);
}
+ case SCRIPT_CODE: {
+ InsetScriptParams isp;
+ InsetScript::string2params(to_utf8(cmd.argument()), isp);
+ return new InsetScript(buf, isp);
+ }
+
case SPACE_CODE: {
InsetSpaceParams isp;
InsetSpace::string2params(to_utf8(cmd.argument()), isp);
case TOC_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetTOC(icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetTOC(buf, icp);
}
case VSPACE_CODE: {
InsetVSpace::string2params(to_utf8(cmd.argument()), vspace);
return new InsetVSpace(vspace);
}
+
+ case PREVIEW_CODE:
+ return new InsetPreview(buf);
default:
lyxerr << "Inset '" << name << "' not permitted with LFUN_INSET_INSERT."
inset.reset(new InsetBibtex(buf, inscmd));
break;
case CITE_CODE:
- inset.reset(new InsetCitation(inscmd));
+ inset.reset(new InsetCitation(buf, inscmd));
break;
case HYPERLINK_CODE:
- inset.reset(new InsetHyperlink(inscmd));
+ inset.reset(new InsetHyperlink(buf, inscmd));
break;
case INCLUDE_CODE:
- inset.reset(new InsetInclude(inscmd));
+ inset.reset(new InsetInclude(buf, inscmd));
break;
case INDEX_PRINT_CODE:
- inset.reset(new InsetPrintIndex(inscmd));
+ inset.reset(new InsetPrintIndex(buf, inscmd));
break;
case LABEL_CODE:
- inset.reset(new InsetLabel(inscmd));
+ inset.reset(new InsetLabel(buf, inscmd));
+ break;
+ case LINE_CODE:
+ inset.reset(new InsetLine(buf, inscmd));
break;
case NOMENCL_CODE:
- inset.reset(new InsetNomencl(inscmd));
+ inset.reset(new InsetNomencl(buf, inscmd));
break;
case NOMENCL_PRINT_CODE:
- inset.reset(new InsetPrintNomencl(inscmd));
+ inset.reset(new InsetPrintNomencl(buf, inscmd));
break;
case REF_CODE:
if (inscmd["name"].empty() && inscmd["reference"].empty())
inset.reset(new InsetRef(buf, inscmd));
break;
case TOC_CODE:
- inset.reset(new InsetTOC(inscmd));
+ inset.reset(new InsetTOC(buf, inscmd));
break;
case NO_CODE:
default:
inset.reset(new InsetERT(buf));
} else if (tmptok == "listings") {
inset.reset(new InsetListings(buf));
+ } else if (tmptok == "script") {
+ inset.reset(new InsetScript(buf));
} else if (tmptok == "space") {
inset.reset(new InsetSpace);
} else if (tmptok == "Tabular") {
inset.reset(new InsetNewpage);
} else if (tmptok == "Newline") {
inset.reset(new InsetNewline);
- } else if (tmptok == "OptArg") {
- inset.reset(new InsetOptArg(buf));
+ } else if (tmptok == "Argument") {
+ inset.reset(new InsetArgument(buf));
} else if (tmptok == "Float") {
- lex.next();
- string tmptok = lex.getString();
- inset.reset(new InsetFloat(buf, tmptok));
+ inset.reset(new InsetFloat(buf, string()));
} else if (tmptok == "Wrap") {
lex.next();
string tmptok = lex.getString();
} else if (tmptok == "Index") {
inset.reset(new InsetIndex(buf, InsetIndexParams()));
} else if (tmptok == "FloatList") {
- inset.reset(new InsetFloatList);
+ inset.reset(new InsetFloatList(buf));
} else if (tmptok == "Info") {
inset.reset(new InsetInfo(buf));
+ } else if (tmptok == "Preview") {
+ inset.reset(new InsetPreview(buf));
} else {
lyxerr << "unknown Inset type '" << tmptok
<< "'" << endl;