The branch, master, has been updated. - Log -----------------------------------------------------------------
commit e93f4d470d984749a63a063d244391b6646c75c8 Author: Juergen Spitzmueller <[email protected]> Date: Mon Dec 10 14:09:51 2012 +0100 Possibility to specify a preset argument This will be needed for beamer plain and fragile frame support. diff --git a/lib/doc/Customization.lyx b/lib/doc/Customization.lyx index e034ea0..6d06e09 100644 --- a/lib/doc/Customization.lyx +++ b/lib/doc/Customization.lyx @@ -10748,7 +10748,7 @@ status collapsed \begin_layout Itemize -\change_inserted -712698321 1354263106 +\change_inserted -712698321 1355144479 \begin_inset Flex Code status collapsed @@ -10810,6 +10810,39 @@ status collapsed \end_inset . +\end_layout + +\begin_layout Itemize + +\change_inserted -712698321 1355144578 +\begin_inset Flex Code +status collapsed + +\begin_layout Plain Layout + +\change_inserted -712698321 1355144487 +PresetArg +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Flex Code +status collapsed + +\begin_layout Plain Layout + +\change_inserted -712698321 1355144500 +[string] +\end_layout + +\end_inset + + defines an argument that is inserted in any case (alone or in addition + to user-specified arguments). + Multiple arguments need to be separated by comma. \change_unchanged \end_layout @@ -12494,7 +12527,42 @@ LatexName \end_inset stuff. - This parameter cannot be changed from within LyX. + This parameter cannot be changed from within LyX +\change_inserted -712698321 1355144804 + (use +\begin_inset Flex Code +status collapsed + +\begin_layout Plain Layout + +\change_inserted -712698321 1355144804 +Argument +\end_layout + +\end_inset + + for customizable parameters) +\change_unchanged +. + +\change_inserted -712698321 1355144804 + This will be output as is after all LaTeX +\begin_inset Flex Code +status collapsed + +\begin_layout Plain Layout + +\change_inserted -712698321 1355144658 +Arguments +\change_unchanged + +\end_layout + +\end_inset + +. +\change_unchanged + \end_layout \begin_layout Description @@ -16636,7 +16704,40 @@ status collapsed \end_inset . - This parameter cannot be changed from within LyX. + +\change_inserted -712698321 1355144715 +This will be output as is after all LaTeX +\begin_inset Flex Code +status collapsed + +\begin_layout Plain Layout + +\change_inserted -712698321 1355144713 +Arguments +\end_layout + +\end_inset + +. + +\change_unchanged +This parameter cannot be changed from within LyX +\change_inserted -712698321 1355144775 + (use +\begin_inset Flex Code +status collapsed + +\begin_layout Plain Layout + +\change_inserted -712698321 1355144747 +Argument +\end_layout + +\end_inset + + for customizable parameters) +\change_unchanged +. \end_layout \begin_layout Description diff --git a/src/Layout.cpp b/src/Layout.cpp index 1c8aac8..e53e991 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -916,6 +916,9 @@ void Layout::readArgument(Lexer & lex) arg.rdelim = lex.getDocString(); arg.rdelim = support::subst(arg.rdelim, from_ascii("<br/>"), from_ascii("\n")); + } else if (tok == "presetarg") { + lex.next(); + arg.presetarg = lex.getDocString(); } else if (tok == "tooltip") { lex.next(); arg.tooltip = lex.getDocString(); diff --git a/src/Layout.h b/src/Layout.h index 9b3ff38..a76dca6 100644 --- a/src/Layout.h +++ b/src/Layout.h @@ -94,6 +94,7 @@ public: bool mandatory; docstring ldelim; docstring rdelim; + docstring presetarg; docstring tooltip; std::string requires; std::string decoration; diff --git a/src/insets/InsetArgument.cpp b/src/insets/InsetArgument.cpp index 4b57f55..9081a96 100644 --- a/src/insets/InsetArgument.cpp +++ b/src/insets/InsetArgument.cpp @@ -239,7 +239,7 @@ InsetLayout::InsetDecoration InsetArgument::decoration() const void InsetArgument::latexArgument(otexstream & os, OutputParams const & runparams_in, docstring const & ldelim, - docstring const & rdelim) const + docstring const & rdelim, docstring const & presetarg) const { TexRow texrow; odocstringstream ss; @@ -247,6 +247,9 @@ void InsetArgument::latexArgument(otexstream & os, OutputParams runparams = runparams_in; InsetText::latex(ots, runparams); docstring str = ss.str(); + docstring const sep = str.empty() ? docstring() : from_ascii(", "); + if (!presetarg.empty()) + str = presetarg + sep + str; if (ldelim != "{" && support::contains(str, rdelim)) str = '{' + str + '}'; os << ldelim << str << rdelim; diff --git a/src/insets/InsetArgument.h b/src/insets/InsetArgument.h index 1b5050d..7ba81e3 100644 --- a/src/insets/InsetArgument.h +++ b/src/insets/InsetArgument.h @@ -31,7 +31,8 @@ public: /// Outputting the parameter of a LaTeX command void latexArgument(otexstream &, OutputParams const &, - docstring const&, docstring const &) const; + docstring const&, docstring const &, + docstring const &) const; std::string name() const { return name_; } diff --git a/src/insets/InsetLayout.cpp b/src/insets/InsetLayout.cpp index afbc4db..3fee6fb 100644 --- a/src/insets/InsetLayout.cpp +++ b/src/insets/InsetLayout.cpp @@ -544,6 +544,9 @@ void InsetLayout::readArgument(Lexer & lex) arg.rdelim = lex.getDocString(); arg.rdelim = support::subst(arg.rdelim, from_ascii("<br/>"), from_ascii("\n")); + } else if (tok == "presetarg") { + lex.next(); + arg.presetarg = lex.getDocString(); } else if (tok == "tooltip") { lex.next(); arg.tooltip = lex.getDocString(); diff --git a/src/output_latex.cpp b/src/output_latex.cpp index 9d609ee..1ddb4c3 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -368,7 +368,7 @@ void latexArgInsets(Paragraph const & par, otexstream & os, ldelim = arg.ldelim; if (!arg.rdelim.empty()) rdelim = arg.rdelim; - ins->latexArgument(os, runparams, ldelim, rdelim); + ins->latexArgument(os, runparams, ldelim, rdelim, arg.presetarg); inserted = true; } } @@ -385,7 +385,17 @@ void latexArgInsets(Paragraph const & par, otexstream & os, from_ascii("{") : arg.ldelim; docstring rdelim = arg.rdelim.empty() ? from_ascii("}") : arg.rdelim; - os << ldelim << rdelim; + os << ldelim << arg.presetarg << rdelim; + } else if (!arg.presetarg.empty()) { + docstring ldelim = arg.mandatory ? + from_ascii("{") : from_ascii("["); + docstring rdelim = arg.mandatory ? + from_ascii("}") : from_ascii("]"); + if (!arg.ldelim.empty()) + ldelim = arg.ldelim; + if (!arg.rdelim.empty()) + rdelim = arg.rdelim; + os << ldelim << arg.presetarg << rdelim; } else if (find(required.begin(), required.end(), (*lait).first) != required.end()) { docstring ldelim = arg.ldelim.empty() ? ----------------------------------------------------------------------- Summary of changes: lib/doc/Customization.lyx | 107 ++++++++++++++++++++++++++++++++++++++++- src/Layout.cpp | 3 + src/Layout.h | 1 + src/insets/InsetArgument.cpp | 5 ++- src/insets/InsetArgument.h | 3 +- src/insets/InsetLayout.cpp | 3 + src/output_latex.cpp | 14 +++++- 7 files changed, 129 insertions(+), 7 deletions(-) hooks/post-receive -- The LyX Source Repository
