LyXFont::LyXFont(LyXFont::FONT_INIT1)
+#ifndef INHERIT_LANGUAGE
+ : bits(inherit), lang(default_language)
+#else
: bits(inherit), lang(inherit_language)
+#endif
{}
/// Updates font settings according to request
-void LyXFont::update(LyXFont const & newfont, bool toggleall)
+void LyXFont::update(LyXFont const & newfont,
+ Language const * document_language,
+ bool toggleall)
{
if (newfont.family() == family() && toggleall)
setFamily(INHERIT_FAMILY); // toggle 'back'
setNumber(setMisc(newfont.number(), number()));
if (newfont.language() == language() && toggleall)
- setLanguage(inherit_language);
+ if (language() == document_language)
+ setLanguage(default_language);
+ else
+#ifndef INHERIT_LANGUAGE
+ setLanguage(document_language);
+#else
+ setLanguage(inherit_language);
+#endif
else if (newfont.language() != ignore_language)
setLanguage(newfont.language());
setNoun(INHERIT);
if (color() == tmplt.color())
setColor(LColor::inherit);
+#ifdef INHERIT_LANGUAGE
if (language() == tmplt.language())
setLanguage(inherit_language);
+#endif
}
/// Realize font from a template
+#ifndef INHERIT_LANGUAGE
+LyXFont & LyXFont::realize(LyXFont const & tmplt)
+#else
LyXFont & LyXFont::realize(LyXFont const & tmplt, Language const * deflang)
+#endif
{
+#ifdef INHERIT_LANGUAGE
if (language() == inherit_language) {
if (tmplt.language() == inherit_language ||
tmplt.language() == ignore_language ||
setLanguage(tmplt.language());
}
}
+#endif
if (bits == inherit) {
bits = tmplt.bits;
return *this;
shape() != INHERIT_SHAPE && size() != INHERIT_SIZE &&
emph() != INHERIT && underbar() != INHERIT &&
noun() != INHERIT &&
- color() != LColor::inherit &&
- language() != inherit_language);
+#ifdef INHERIT_LANGUAGE
+ language() != inherit_language &&
+#endif
+ color() != LColor::inherit);
}
{
bool error = false;
bool finished = false;
- while (!finished && lex.IsOK() && !error) {
+ while (!finished && lex.isOK() && !error) {
lex.next();
- string const tok = lowercase(lex.GetString());
+ string const tok = lowercase(lex.getString());
if (tok.empty()) {
continue;
finished = true;
} else if (tok == "family") {
lex.next();
- string const ttok = lex.GetString();
+ string const ttok = lex.getString();
setLyXFamily(ttok);
} else if (tok == "series") {
lex.next();
- string const ttok = lex.GetString();
+ string const ttok = lex.getString();
setLyXSeries(ttok);
} else if (tok == "shape") {
lex.next();
- string const ttok = lex.GetString();
+ string const ttok = lex.getString();
setLyXShape(ttok);
} else if (tok == "size") {
lex.next();
- string const ttok = lex.GetString();
+ string const ttok = lex.getString();
setLyXSize(ttok);
} else if (tok == "misc") {
lex.next();
- string const ttok = lowercase(lex.GetString());
+ string const ttok = lowercase(lex.getString());
if (ttok == "no_bar") {
setUnderbar(OFF);
}
} else if (tok == "color") {
lex.next();
- string const ttok = lex.GetString();
+ string const ttok = lex.getString();
setLyXColor(ttok);
} else {
lex.printError("Unknown tag `$$Token'");
/// Writes the changes from this font to orgfont in .lyx format in file
void LyXFont::lyxWriteChanges(LyXFont const & orgfont,
- Language const * doclang, ostream & os) const
+#ifdef INHERIT_LANGUAGE
+ Language const * doclang,
+#endif
+ ostream & os) const
{
os << "\n";
if (orgfont.family() != family()) {
os << "\\color " << col_str << "\n";
}
if (orgfont.language() != language()) {
+#ifndef INHERIT_LANGUAGE
+ if (language())
+#else
if (language() == inherit_language)
os << "\\lang " << doclang->lang() << "\n";
else if (language())
+#endif
os << "\\lang " << language()->lang() << "\n";
else
os << "\\lang unknown\n";