- 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[] = {