- lexrc.pushTable(elementTags, IL_END);
-
- string lyxtype;
- docstring labelstring;
- string latextype;
- string decoration;
- string latexname;
- string latexparam;
- FontInfo font = inherit_font;
- FontInfo labelfont = inherit_font;
- ColorCode bgcolor(Color_background);
- string preamble;
- set<string> requires;
- bool multipar = false;
- bool passthru = false;
- bool needprotect = false;
- bool keepempty = false;
- bool freespacing = false;
- bool forceltr = false;
-
- bool getout = false;
- while (!getout && lexrc.isOK()) {
- int le = lexrc.lex();
- switch (le) {
- case Lexer::LEX_UNDEF:
- lexrc.printError("Unknown InsetLayout tag `$$Token'");
- continue;
- default: break;
- }
- switch (static_cast<InsetLayoutTags>(le)) {
- case IL_LYXTYPE:
- lexrc.next();
- lyxtype = lexrc.getString();
- break;
- case IL_LATEXTYPE:
- lexrc.next();
- latextype = lexrc.getString();
- break;
- case IL_LABELSTRING:
- lexrc.next();
- labelstring = lexrc.getDocString();
- break;
- case IL_DECORATION:
- lexrc.next();
- decoration = lexrc.getString();
- break;
- case IL_LATEXNAME:
- lexrc.next();
- latexname = lexrc.getString();
- break;
- case IL_LATEXPARAM:
- lexrc.next();
- latexparam = subst(lexrc.getString(), """, "\"");
- break;
- case IL_LABELFONT:
- labelfont = lyxRead(lexrc, inherit_font);
- break;
- case IL_FORCELTR:
- lexrc.next();
- forceltr = lexrc.getBool();
- break;
- case IL_MULTIPAR:
- lexrc.next();
- multipar = lexrc.getBool();
- break;
- case IL_PASSTHRU:
- lexrc.next();
- passthru = lexrc.getBool();
- break;
- case IL_KEEPEMPTY:
- lexrc.next();
- keepempty = lexrc.getBool();
- break;
- case IL_FREESPACING:
- lexrc.next();
- freespacing = lexrc.getBool();
- break;
- case IL_NEEDPROTECT:
- lexrc.next();
- needprotect = lexrc.getBool();
- break;
- case IL_FONT:
- font = lyxRead(lexrc, inherit_font);
- // So: define font before labelfont
- labelfont = font;
- break;
- case IL_BGCOLOR: {
- lexrc.next();
- string const token = lexrc.getString();
- bgcolor = lcolor.getFromLyXName(token);
- break;
- }
- case IL_PREAMBLE:
- preamble = lexrc.getLongString("EndPreamble");
- break;
- case IL_REQUIRES: {
- lexrc.eatLine();
- vector<string> const req
- = getVectorFromString(lexrc.getString());
- requires.insert(req.begin(), req.end());
- break;
- }
- case IL_END:
- getout = true;
- break;
- }
- }
-
- // Here add element to list if getout == true
- if (getout) {
- InsetLayout il;
- il.name = to_ascii(name);
- il.lyxtype = lyxtype;
- il.labelstring = labelstring;
- il.decoration = decoration;
- il.latextype = latextype;
- il.latexname = latexname;
- il.latexparam = latexparam;
- il.multipar = multipar;
- il.passthru = passthru;
- il.needprotect = needprotect;
- il.freespacing = freespacing;
- il.forceltr = forceltr;
- il.keepempty = keepempty;
- il.font = font;
- // The label font is generally used as-is without
- // any realization against a given context.
- labelfont.realize(sane_font);
- il.labelfont = labelfont;
- il.bgcolor = bgcolor;
- il.preamble = preamble;
- il.requires = requires;
- insetlayoutlist_[name] = il;
- }
-
- lexrc.popTable();
-}
-
-
-
-enum FloatTags {
- FT_TYPE = 1,
- FT_NAME,
- FT_PLACEMENT,
- FT_EXT,
- FT_WITHIN,
- FT_STYLE,
- FT_LISTNAME,
- FT_BUILTIN,
- FT_END
-};
-
-
-void TextClass::readFloat(Lexer & lexrc)
-{
- keyword_item floatTags[] = {