]> git.lyx.org Git - lyx.git/commitdiff
Possibility to specify a preset argument
authorJuergen Spitzmueller <spitz@lyx.org>
Mon, 10 Dec 2012 13:09:51 +0000 (14:09 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Mon, 10 Dec 2012 13:09:51 +0000 (14:09 +0100)
This will be needed for beamer plain and fragile frame support.

lib/doc/Customization.lyx
src/Layout.cpp
src/Layout.h
src/insets/InsetArgument.cpp
src/insets/InsetArgument.h
src/insets/InsetLayout.cpp
src/output_latex.cpp

index e034ea0aa10d4375c9602762744f521f5481bb8b..6d06e09c12317483ce8d0324aa06163fe88ddaa3 100644 (file)
@@ -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
index 1c8aac8ad4a04be7358fcc691f0450b7d18b21bd..e53e99171bb848fc11dd09a0759d955d725c6e23 100644 (file)
@@ -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();
index 9b3ff388a64694c8cf1711f8096d6a5b0ab20740..a76dca6e89dad3b0c6606102bf84c5af2392d65a 100644 (file)
@@ -94,6 +94,7 @@ public:
                bool mandatory;
                docstring ldelim;
                docstring rdelim;
+               docstring presetarg;
                docstring tooltip;
                std::string requires;
                std::string decoration;
index 4b57f5515b5cc86b3a5fa71f9f834d73acf51faf..9081a96ae69d8cbcf34fe02eb7f0613847804793 100644 (file)
@@ -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;
index 1b5050db95e485ef1f052b69facce60d7e46f58b..7ba81e37d9f6be294d687741d91359e9121dca55 100644 (file)
@@ -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_; }
 
index afbc4db50b44fb7aa7465128e9d00fe9e800d738..3fee6fb009e25abc22224c23da65416d4a83ffd0 100644 (file)
@@ -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();
index 9d609eea9c82f6d75c25803e1ab38b99fbf58b05..1ddb4c3caa438efcc429438bc0b7967709d175ec 100644 (file)
@@ -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() ?