InsetLayout::InsetLayout() :
name_(from_ascii("undefined")), lyxtype_(STANDARD),
- labelstring_(from_ascii("UNDEFINED")), decoration_(DEFAULT),
- latextype_(NOLATEXTYPE), font_(sane_font),
+ labelstring_(from_ascii("UNDEFINED")), contentaslabel_(false),
+ decoration_(DEFAULT), latextype_(NOLATEXTYPE), font_(sane_font),
labelfont_(sane_font), bgcolor_(Color_error),
htmlforcecss_ (false), htmlisblock_(true),
- multipar_(false), custompars_(true), forceplain_(false),
- passthru_(false), needprotect_(false), freespacing_(false),
- keepempty_(false), forceltr_(false), intoc_(false)
+ multipar_(true), custompars_(true), forceplain_(false),
+ passthru_(false), parbreakisnewline_(false), freespacing_(false),
+ keepempty_(false), forceltr_(false),
+ needprotect_(false), intoc_(false), spellcheck_(true),
+ resetsfont_(true), display_(true)
{
labelfont_.setColor(Color_error);
}
{
enum {
IL_BGCOLOR,
+ IL_CONTENTASLABEL,
IL_COPYSTYLE,
IL_COUNTER,
IL_CUSTOMPARS,
IL_DECORATION,
+ IL_DISPLAY,
IL_FONT,
IL_FORCELTR,
IL_FORCEPLAIN,
IL_MULTIPAR,
IL_NEEDPROTECT,
IL_PASSTHRU,
+ IL_PARBREAKISNEWLINE,
IL_PREAMBLE,
IL_REQUIRES,
+ IL_SPELLCHECK,
+ IL_REFPREFIX,
+ IL_RESETSFONT,
IL_END
};
LexerKeyword elementTags[] = {
{ "bgcolor", IL_BGCOLOR },
+ { "contentaslabel", IL_CONTENTASLABEL },
{ "copystyle", IL_COPYSTYLE },
{ "counter", IL_COUNTER},
{ "custompars", IL_CUSTOMPARS },
{ "decoration", IL_DECORATION },
+ { "display", IL_DISPLAY },
{ "end", IL_END },
{ "font", IL_FONT },
{ "forceltr", IL_FORCELTR },
{ "lyxtype", IL_LYXTYPE },
{ "multipar", IL_MULTIPAR },
{ "needprotect", IL_NEEDPROTECT },
+ { "parbreakisnewline", IL_PARBREAKISNEWLINE },
{ "passthru", IL_PASSTHRU },
{ "preamble", IL_PREAMBLE },
- { "requires", IL_REQUIRES }
+ { "refprefix", IL_REFPREFIX },
+ { "requires", IL_REQUIRES },
+ { "resetsfont", IL_RESETSFONT },
+ { "spellcheck", IL_SPELLCHECK }
};
lex.pushTable(elementTags);
- FontInfo font = inherit_font;
labelfont_ = inherit_font;
bgcolor_ = Color_none;
bool getout = false;
// way this sort of thing is handled in Layout::read(), namely, by
// using the Lexer.
case IL_LYXTYPE: {
+ // make sure that we have the right sort of name.
+ if (name_ != from_ascii("undefined")
+ && name_.substr(0,5) != from_ascii("Flex:")) {
+ LYXERR0("Flex insets must have names of the form `Flex:<name>'.\n"
+ "This one has the name `" << to_utf8(name_) << "'\n"
+ "Ignoring LyXType declaration.");
+ break;
+ }
string lt;
lex >> lt;
lyxtype_ = translateLyXType(lt);
if (lyxtype_ == NOLYXTYPE)
LYXERR0("Unknown LyXType `" << lt << "'.");
+ if (lyxtype_ == CHARSTYLE)
+ multipar_ = false;
break;
}
case IL_LATEXTYPE: {
break;
case IL_FORCEPLAIN:
lex >> forceplain_;
+ readCustomOrPlain = true;
break;
case IL_PASSTHRU:
lex >> passthru_;
- readCustomOrPlain = true;
+ break;
+ case IL_PARBREAKISNEWLINE:
+ lex >> parbreakisnewline_;
break;
case IL_KEEPEMPTY:
lex >> keepempty_;
case IL_NEEDPROTECT:
lex >> needprotect_;
break;
- case IL_COPYSTYLE: { // initialize with a known style
+ case IL_CONTENTASLABEL:
+ lex >> contentaslabel_;
+ break;
+ case IL_COPYSTYLE: {
+ // initialize with a known style
docstring style;
lex >> style;
style = support::subst(style, '_', ' ');
case IL_PREAMBLE:
preamble_ = from_utf8(lex.getLongString("EndPreamble"));
break;
+ case IL_REFPREFIX:
+ lex >> refprefix_;
+ break;
case IL_HTMLTAG:
lex >> htmltag_;
break;
requires_.insert(req.begin(), req.end());
break;
}
+ case IL_SPELLCHECK:
+ lex >> spellcheck_;
+ break;
+ case IL_RESETSFONT:
+ lex >> resetsfont_;
+ break;
+ case IL_DISPLAY:
+ lex >> display_;
+ break;
case IL_END:
getout = true;
break;
string const & InsetLayout::htmltag() const
{
if (htmltag_.empty())
- htmltag_ = "span";
+ htmltag_ = multipar_ ? "div" : "span";
return htmltag_;
}