#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 type = cmd.getArg(0);
- //FIXME: only the float type (the first argument) is transmitted
- // because of the InsetFloat ctor.
- if (params.documentClass().floats().typeExist(type))
- return new InsetFloat(buf, type);
- lyxerr << "Non-existent float type: " << type << endl;
- return 0;
+ 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: {
return new InsetPrintNomencl(buf, icp);
}
- case LFUN_TOC_INSERT:
- return new InsetTOC(buf, 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);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
return new InsetCitation(buf, icp);
}
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);
+ 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);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
return new InsetInclude(buf, icp);
}
case INDEX_PRINT_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), 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(buf, icp);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
+ return new InsetLabel(buf, icp);
}
- case LABEL_CODE: {
+ case LINE_CODE: {
InsetCommandParams icp(code);
- InsetCommand::string2params(name, to_utf8(cmd.argument()), icp);
- return new InsetLabel(buf, icp);
+ 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(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);
+ InsetCommand::string2params(to_utf8(cmd.argument()), icp);
return new InsetTOC(buf, icp);
}
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."
case LABEL_CODE:
inset.reset(new InsetLabel(buf, inscmd));
break;
+ case LINE_CODE:
+ inset.reset(new InsetLine(buf, inscmd));
+ break;
case NOMENCL_CODE:
inset.reset(new InsetNomencl(buf, inscmd));
break;
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();
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;