]> git.lyx.org Git - lyx.git/blobdiff - src/Layout.cpp
GuiBox.cpp: fix this issue: horizontal box alignment is only possible without inner...
[lyx.git] / src / Layout.cpp
index ae045f130fd3519956085b0c7d9f7e27bb96d81d..6dfc0f5dcf7c1838c3a81f1ae73f77dad23323bc 100644 (file)
@@ -104,6 +104,9 @@ enum LayoutTags {
        LT_HTMLFORCECSS,
        LT_INPREAMBLE,
        LT_HTMLTITLE,
+       LT_SPELLCHECK,
+       LT_REFPREFIX,
+       LT_REQARGS,
        LT_INTITLE // keep this last!
 };
 
@@ -116,7 +119,6 @@ Layout::Layout()
        latextype = LATEX_PARAGRAPH;
        intitle = false;
        inpreamble = false;
-       optionalargs = 0;
        needprotect = false;
        keepempty = false;
        font = inherit_font;
@@ -146,6 +148,9 @@ Layout::Layout()
        htmllabelfirst_ = false;
        htmlforcecss_ = false;
        htmltitle_ = false;
+       spellcheck = true;
+       optargs = 0;
+       reqargs = 0;
 }
 
 
@@ -210,9 +215,12 @@ bool Layout::read(Lexer & lex, TextClass const & tclass)
                { "parskip",        LT_PARSKIP },
                { "passthru",       LT_PASS_THRU },
                { "preamble",       LT_PREAMBLE },
+               { "refprefix",      LT_REFPREFIX },
+               { "requiredargs",   LT_REQARGS },
                { "requires",       LT_REQUIRES },
                { "rightmargin",    LT_RIGHTMARGIN },
                { "spacing",        LT_SPACING },
+               { "spellcheck",     LT_SPELLCHECK },
                { "textfont",       LT_TEXTFONT },
                { "toclevel",       LT_TOCLEVEL },
                { "topsep",         LT_TOPSEP }
@@ -315,7 +323,11 @@ bool Layout::read(Lexer & lex, TextClass const & tclass)
                        break;
 
                case LT_OPTARGS:
-                       lex >> optionalargs ;
+                       lex >> optargs;
+                       break;
+
+               case LT_REQARGS:
+                       lex >> reqargs;
                        break;
 
                case LT_NEED_PROTECT:
@@ -494,6 +506,10 @@ bool Layout::read(Lexer & lex, TextClass const & tclass)
                        requires_.insert(req.begin(), req.end());
                        break;
                }
+                       
+               case LT_REFPREFIX:
+                       lex >> refprefix;
+                       break;
 
                case LT_HTMLTAG:
                        lex >> htmltag_;
@@ -537,9 +553,19 @@ bool Layout::read(Lexer & lex, TextClass const & tclass)
                case LT_HTMLTITLE:
                        lex >> htmltitle_;
                        break;
+
+               case LT_SPELLCHECK:
+                       lex >> spellcheck;
+                       break;
                }
        }
        lex.popTable();
+       // make sure we only have inpreamble = true for commands
+       if (inpreamble && latextype != LATEX_COMMAND) {
+               LYXERR0("InPreamble not permitted except with Command-type layouts.");
+               LYXERR0("Layout name: " << name());
+               inpreamble = false;
+       }
 
        return !error;
 }