]> git.lyx.org Git - lyx.git/blobdiff - src/lyxlayout.C
rename Inset to InsetOld
[lyx.git] / src / lyxlayout.C
index ca31bee99ced9f6a1830ab3d3905b1cd56f67ccc..fc691697f7c0abb7a19f9e020024aa32fa337f53 100644 (file)
 
 #include <config.h>
 
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
 #include "lyxlayout.h"
 #include "lyxtextclass.h"
 #include "lyxlex.h"
@@ -22,6 +18,8 @@
 
 #include "support/lstrings.h"
 
+using namespace lyx::support;
+
 using std::endl;
 
 //  The order of the LayoutTags enum is no more important. [asierra300396]
@@ -61,6 +59,9 @@ enum LayoutTags {
        LT_LATEXPARAM,
        LT_OPTARGS,
        LT_LATEXTYPE,
+       LT_LATEXHEADER,
+       LT_LATEXFOOTER,
+       LT_LATEXPARAGRAPH,
        LT_LEFTMARGIN,
        LT_NEED_PROTECT,
        LT_NEWLINE,
@@ -109,6 +110,7 @@ LyXLayout::LyXLayout ()
        newline_allowed = true;
        free_spacing = false;
        pass_thru = false;
+       is_environment = false;
 }
 
 
@@ -121,7 +123,7 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass)
                { "alignpossible",      LT_ALIGNPOSSIBLE },
                { "bottomsep",          LT_BOTTOMSEP },
                { "copystyle",          LT_COPYSTYLE },
-               { "dependson",          LT_DEPENDSON },
+               { "dependson",          LT_DEPENDSON },
                { "end",                LT_END },
                { "endlabelstring",     LT_ENDLABELSTRING },
                { "endlabeltype",       LT_ENDLABELTYPE },
@@ -139,7 +141,10 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass)
                { "labelstring",        LT_LABELSTRING },
                { "labelstringappendix", LT_LABELSTRING_APPENDIX },
                { "labeltype",          LT_LABELTYPE },
+               { "latexfooter",                LT_LATEXFOOTER },
+               { "latexheader",                LT_LATEXHEADER },
                { "latexname",          LT_LATEXNAME },
+               { "latexparagraph",             LT_LATEXPARAGRAPH },
                { "latexparam",         LT_LATEXPARAM },
                { "latextype",          LT_LATEXTYPE },
                { "leftmargin",         LT_LEFTMARGIN },
@@ -221,7 +226,7 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass)
                                        if (obsoleted_by().empty())
                                                obsoleted_by_ = style;
                                } else {
-                                       lyxerr << "Cannot replace with unknown style `" << style << "'" << endl;
+                                       lyxerr << "Cannot replace with unknown style `" << style << '\'' << endl;
 
                                        //lexrc.printError("Cannot replace with"
                                        //               " unknown style "
@@ -230,26 +235,43 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass)
                        }
                        break;
 
-               case LT_DEPENDSON: 
+               case LT_DEPENDSON:
                        if (lexrc.next()) {
                                depends_on_ = lexrc.getString();
                        }
                        break;
 
-               case LT_MARGIN:         // Margin style definition.
+               case LT_MARGIN:         // margin style definition.
                        readMargin(lexrc);
                        break;
 
-               case LT_LATEXTYPE:      // Latex style definition.
+               case LT_LATEXTYPE:      // LaTeX style definition.
                        readLatexType(lexrc);
                        break;
 
+               case LT_LATEXHEADER:    // header for environments
+                       lexrc.next();
+                       latexheader = lexrc.getString();
+                       break;
+
+               case LT_LATEXFOOTER:    // footer for environments
+                       lexrc.next();
+                       latexfooter = lexrc.getString();
+                       break;
+
+               case LT_LATEXPARAGRAPH:
+                       lexrc.next();
+                       latexparagraph = lexrc.getString();
+                       break;
+
                case LT_INTITLE:
                        intitle = lexrc.next() && lexrc.getInteger();
                        break;
 
                case LT_OPTARGS:
-                       optionalargs = lexrc.next() && lexrc.getInteger();
+                       if (lexrc.next()) {
+                               optionalargs = lexrc.getInteger();
+                       }
                        break;
 
                case LT_NEED_PROTECT:
@@ -382,17 +404,17 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass)
 
                case LT_LABELSTRING:    // label string definition
                        if (lexrc.next())
-                               labelstring_ = lexrc.getString();
+                               labelstring_ = trim(lexrc.getString());
                        break;
 
                case LT_ENDLABELSTRING: // endlabel string definition
                        if (lexrc.next())
-                               endlabelstring_ = lexrc.getString();
+                               endlabelstring_ = trim(lexrc.getString());
                        break;
 
                case LT_LABELSTRING_APPENDIX: // label string appendix definition
                        if (lexrc.next())
-                               labelstring_appendix_ = lexrc.getString();
+                               labelstring_appendix_ = trim(lexrc.getString());
                        break;
 
                case LT_FREE_SPACING:   // Allow for free spacing.
@@ -531,7 +553,7 @@ void LyXLayout::readLabelType(LyXLex & lexrc)
        keyword_item labelTypeTags[] = {
        { "bibliography",             LA_BIBLIO },
        { "centered_top_environment", LA_CENTERED_TOP_ENVIRONMENT },
-       { "counter_chapter",          LA_COUNTER_CHAPTER },
+       { "counter_chapter",          LA_COUNTER_CHAPTER },
        { "counter_enumi",            LA_COUNTER_ENUMI },
        { "counter_enumii",           LA_COUNTER_ENUMII },
        { "counter_enumiii",          LA_COUNTER_ENUMIII },
@@ -546,7 +568,7 @@ void LyXLayout::readLabelType(LyXLex & lexrc)
        { "sensitive",                LA_SENSITIVE },
        { "static",                   LA_STATIC },
        { "top_environment",          LA_TOP_ENVIRONMENT }
-};
+       };
 
        pushpophelper pph(lexrc, labelTypeTags, LA_BIBLIO);
        int le = lexrc.lex();
@@ -682,6 +704,7 @@ void LyXLayout::readMargin(LyXLex & lexrc)
 void LyXLayout::readLatexType(LyXLex & lexrc)
 {
        keyword_item latexTypeTags[] = {
+               { "bib_environment",  LATEX_BIB_ENVIRONMENT },
                { "command",          LATEX_COMMAND },
                { "environment",      LATEX_ENVIRONMENT },
                { "item_environment", LATEX_ITEM_ENVIRONMENT },
@@ -699,6 +722,7 @@ void LyXLayout::readLatexType(LyXLex & lexrc)
        case LATEX_COMMAND:
        case LATEX_ENVIRONMENT:
        case LATEX_ITEM_ENVIRONMENT:
+       case LATEX_BIB_ENVIRONMENT:
        case LATEX_LIST_ENVIRONMENT:
                latextype = static_cast<LYX_LATEX_TYPES>(le);
                break;