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)
{
labelfont_.setColor(Color_error);
}
{
enum {
IL_BGCOLOR,
+ IL_CONTENTASLABEL,
IL_COPYSTYLE,
IL_COUNTER,
IL_CUSTOMPARS,
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 },
{ "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);
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_END:
getout = true;
break;
}
+string const & InsetLayout::htmltag() const
+{
+ if (htmltag_.empty())
+ htmltag_ = multipar_ ? "div" : "span";
+ return htmltag_;
+}
+
+
string const & InsetLayout::htmlattr() const
{
if (htmlattr_.empty())
{
if (!htmldefaultstyle_.empty())
return;
- if (!htmltag_.empty()) {
- docstring const mainfontCSS = font_.asCSS();
- if (!mainfontCSS.empty())
- htmldefaultstyle_ =
- from_ascii(htmltag() + "." + defaultCSSClass() + " {\n") +
- mainfontCSS + from_ascii("\n}\n");
- }
- /*
- At present, we do not have default tags, etc, for the label.
- if (labelfont_ == font_)
- return;
- docstring const labelfontCSS = labelfont_.asCSS();
- if (!labelfontCSS.empty())
- htmldefaultstyle_ +=
-. from_ascii(htmllabeltag() + "." + defaultCSSLabelClass() + " {\n") +
- labelfontCSS + from_ascii("\n}\n");
- */
+ docstring const mainfontCSS = font_.asCSS();
+ if (!mainfontCSS.empty())
+ htmldefaultstyle_ =
+ from_ascii(htmltag() + "." + defaultCSSClass() + " {\n") +
+ mainfontCSS + from_ascii("\n}\n");
}
+
docstring InsetLayout::htmlstyle() const
{
if (!htmlstyle_.empty() && !htmlforcecss_)
return htmlstyle_;
- if (htmldefaultstyle_.empty())
+ if (htmldefaultstyle_.empty())
makeDefaultCSS();
docstring retval = htmldefaultstyle_;
if (!htmlstyle_.empty())
- retval += '\n' + htmlstyle_;
+ retval += '\n' + htmlstyle_ + '\n';
return retval;
}