cursor.par(), cursor.pos() - 1);
LyXScreen::Cursor_Shape shape = LyXScreen::BAR_SHAPE;
LyXText * txt = getLyXText();
- if (theLockingInset()->getLockingInset()->lyxCode() ==
- Inset::TEXT_CODE &&
+ if (theLockingInset()->getLockingInset()->isTextInset() &&
(txt->real_current_font.language() !=
buffer()->params.language
|| txt->real_current_font.isVisibleRightToLeft()
+2001-08-11 Dekel Tsur <dekelts@tau.ac.il>
+
+ * Many files: Remove inherit_language, and add latex_language
+
+ * BufferView2.C (showLockedInsetCursor): Fix cursor shape in
+ collapsible insets.
+
2001-08-10 Juergen Vigna <jug@sad.it>
* text.C (prepareToPrint): fixed hfill-width in draw!
void styleReset(BufferView * bv)
{
+#ifndef INHERIT_LANG
+ LyXFont font(LyXFont::ALL_INHERIT, ignore_language);
+#else
LyXFont font(LyXFont::ALL_INHERIT);
+#endif
toggleAndShow(bv, font);
}
+2001-08-11 Dekel Tsur <dekelts@tau.ac.il>
+
+ * insettext.C (localDispatch): Change language only when the inset
+ becomes empty.
+
2001-08-10 Juergen Vigna <jug@sad.it>
* insettabular.C (selectNextWordInt): use the front using edit call.
InsetERT::InsetERT(string const & contents, bool collapsed)
: InsetCollapsable(collapsed)
{
+#ifndef INHERIT_LANG
+ LyXFont font(LyXFont::ALL_INHERIT, latex_language);
+#else
LyXFont font(LyXFont::ALL_INHERIT);
+#endif
font.setFamily(LyXFont::TYPEWRITER_FAMILY);
font.setColor(LColor::latex);
string::const_iterator cit = contents.begin();
bool InsetERT::checkInsertChar(LyXFont & font)
{
+#ifndef INHERIT_LANG
+ LyXFont f(LyXFont::ALL_INHERIT, latex_language);
+#else
LyXFont f(LyXFont::ALL_INHERIT);
+#endif
font = f;
font.setFamily(LyXFont::TYPEWRITER_FAMILY);
font.setColor(LColor::latex);
void InsetERT::set_latex_font(BufferView * bv)
{
+#ifndef INHERIT_LANG
+ LyXFont font(LyXFont::ALL_INHERIT, latex_language);
+#else
LyXFont font(LyXFont::ALL_INHERIT);
+#endif
font.setFamily(LyXFont::TYPEWRITER_FAMILY);
font.setColor(LColor::latex);
InsetText::localDispatch(BufferView * bv,
kb_action action, string const & arg)
{
+ bool was_empty = par->size() == 0 && !par->next();
no_selection = false;
UpdatableInset::RESULT
result= UpdatableInset::localDispatch(bv, action, arg);
/// If the action has deleted all text in the inset, we need to change the
// language to the language of the surronding text.
- if (par->size() == 0 && !par->next()) {
+ if (!was_empty && par->size() == 0 && !par->next()) {
LyXFont font(LyXFont::ALL_IGNORE);
font.setLanguage(bv->getParentLanguage(this));
setFont(bv, font, false);
Language const * default_language;
Language ignore_lang("ignore", "ignore", "Ignore", false, 0, "ignore", "");
Language const * ignore_language = &ignore_lang;
+Language latex_lang("latex", "latex", "Latex", false, 0, "latex", "");
+Language const * latex_language = &latex_lang;
+#ifdef INHERIT_LANG
Language inherit_lang("inherit", "inherit", "Inherit", false, 0, "inherit", "");
Language const * inherit_language = &inherit_lang;
+#endif
void Languages::setDefaults()
{
extern Language const * default_language;
extern Language const * english_language;
extern Language const * ignore_language;
+extern Language const * latex_language;
+#ifdef INHERIT_LANGUAGE
extern Language const * inherit_language;
+#endif
#endif
if (!lay.Read(lexrc, *this)) {
// Reslove fonts
lay.resfont = lay.font;
+#ifndef INHERIT_LANGUAGE
+ lay.resfont.realize(defaultfont());
+ lay.reslabelfont = lay.labelfont;
+ lay.reslabelfont.realize(defaultfont());
+#else
lay.resfont.realize(defaultfont(), default_language);
lay.reslabelfont = lay.labelfont;
lay.reslabelfont.realize(defaultfont(), default_language);
+#endif
return false; // no errors
}
lyxerr << "Error parsing style `" << lay.name() << "'" << endl;
if (!defaultfont_.resolved()) {
lexrc.printError("Warning: defaultfont should "
"be fully instantiated!");
+#ifndef INHERIT_LANGUAGE
+ defaultfont_.realize(LyXFont(LyXFont::ALL_SANE));
+#else
defaultfont_.realize(LyXFont(LyXFont::ALL_SANE),
default_language);
+#endif
}
break;
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);
}
/// 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";
a INHERIT_FAMILY was asked for. This is necessary for the
toggle-user-defined-style button on the toolbar.
*/
- void update(LyXFont const & newfont, bool toggleall = false);
+ void update(LyXFont const & newfont,
+ Language const * default_lang,
+ bool toggleall = false);
/** Reduce font to fall back to template where possible.
Equal fields are reduced to INHERIT */
void reduce(LyXFont const & tmplt);
/// Realize font from a template (INHERIT are realized)
+#ifndef INHERIT_LANGUAGE
+ LyXFont & realize(LyXFont const & tmplt);
+#else
LyXFont & realize(LyXFont const & tmplt, Language const * language);
-
+#endif
/// Is a given font fully resolved?
bool resolved() const;
LyXFont & lyxRead(LyXLex &);
/// Writes the changes from this font to orgfont in .lyx format in file
+#ifndef INHERIT_LANGUAGE
+ void lyxWriteChanges(LyXFont const & orgfont, std::ostream &) const;
+#else
void lyxWriteChanges(LyXFont const & orgfont, Language const * doclang,
std::ostream &) const;
+#endif
/** Writes the head of the LaTeX needed to change to this font.
Writes to string, the head of the LaTeX needed to change
// Write font changes
LyXFont font2 = getFontSettings(bparams, i);
if (font2 != font1) {
+#ifndef INHERIT_LANGUAGE
+ font2.lyxWriteChanges(font1, os);
+#else
font2.lyxWriteChanges(font1, bparams.language, os);
+#endif
column = 0;
font1 = font2;
}
}
Language const * language = cit->font().language();
- if (language != ignore_language &&
- language != inherit_language &&
- language->babel() != doc_language->babel())
+ if (language->babel() != doc_language->babel() &&
+ language != ignore_language &&
+#ifdef INHERIT_LANGUAGE
+ language != inherit_language &&
+#endif
+ language != latex_language)
{
features.UsedLanguages.insert(language);
lyxerr[Debug::LATEX] << "Found language "
retfont = getFontSettings(bparams, pos - 1);
} else
retfont = LyXFont(LyXFont::ALL_INHERIT, getParLanguage(bparams));
+#ifdef INHERIT_LANGUAGE
if (retfont.language() == inherit_language)
retfont.setLanguage(bparams.language);
+#endif
return retfont;
}
layoutfont = layout.font;
LyXFont tmpfont = getFontSettings(bparams, pos);
+#ifndef INHERIT_LANGUAGE
+ tmpfont.realize(layoutfont);
+#else
tmpfont.realize(layoutfont, bparams.language);
+#endif
return pimpl_->realizeFont(tmpfont, bparams);
}
Language const * doc_language = bparams.language;
Language const * previous_language = previous_
? previous_->getParLanguage(bparams) : doc_language;
- if (language == ignore_language || language == inherit_language)
- lyxerr << "1:" << language->lang() << endl;
if (language->babel() != doc_language->babel() &&
language->babel() != previous_language->babel()) {
os << subst(lyxrc.language_command_begin, "$$lang",
Paragraph::getParLanguage(BufferParams const & bparams) const
{
if (size() > 0) {
+#ifndef INHERIT_LANGUAGE
+ return getFirstFontSettings().language();
+#else
Language const * lang = getFirstFontSettings().language();
#warning We should make this somewhat better, any ideas? (Jug)
if (lang == inherit_language || lang == ignore_language)
lang = bparams.language;
return lang;
+#endif
} else if (previous_)
return previous_->getParLanguage(bparams);
else
Language const * doc_language = bparams.language;
for (Pimpl::FontList::const_iterator cit = pimpl_->fontlist.begin();
cit != pimpl_->fontlist.end(); ++cit)
- if (cit->font().language() != inherit_language &&
- cit->font().language() != ignore_language &&
+ if (cit->font().language() != ignore_language &&
+ cit->font().language() != latex_language &&
+#ifdef INHERIT_LANGUAGE
+ cit->font().language() != inherit_language &&
+#endif
cit->font().language() != doc_language)
return true;
return false;
while (par && par->getDepth() && !tmpfont.resolved()) {
par = par->outerHook();
if (par) {
+#ifndef INHERIT_LANGUAGE
+ tmpfont.realize(textclasslist.
+ Style(bparams.textclass,
+ par->getLayout()).font);
+#else
tmpfont.realize(textclasslist.
Style(bparams.textclass,
par->getLayout()).font, bparams.language);
+#endif
par_depth = par->getDepth();
}
}
- tmpfont.realize(textclasslist
- .TextClass(bparams.textclass)
+#ifndef INHERIT_LANGUAGE
+ tmpfont.realize(textclasslist.TextClass(bparams.textclass)
+ .defaultfont());
+#else
+ tmpfont.realize(textclasslist.TextClass(bparams.textclass)
.defaultfont(), bparams.language);
+#endif
return tmpfont;
}
++vpos;
if (lyxrc.mark_foreign_language &&
- font.language() != ignore_language &&
+ font.language() != latex_language &&
font.language() != bview->buffer()->params.language) {
int const y = offset + row->height() - 1;
pain.line(int(tmpx), y, int(x), y, LColor::language);
x += lyxfont::width(textstring, font);
}
+#ifdef INHERIT_LANGUAGE
#ifdef WITH_WARNINGS
if ((font.language() == inherit_language) ||
(font.language() == ignore_language))
lyxerr << "No this shouldn't happen!\n";
+#endif
#endif
if (lyxrc.mark_foreign_language &&
+ font.language() != latex_language &&
font.language() != bview->buffer()->params.language) {
int const y = offset + row->height() - 1;
pain.line(int(tmpx), y, int(x), y,
while (par && par_depth && !tmpfont.resolved()) {
par = par->outerHook();
if (par) {
+#ifndef INHERIT_LANGUAGE
+ tmpfont.realize(textclasslist.
+ Style(buf->params.textclass,
+ par->getLayout()).font);
+#else
tmpfont.realize(textclasslist.
Style(buf->params.textclass,
par->getLayout()).font,
- buf->params.language);
+ buf->params.language);
+#endif
par_depth = par->getDepth();
}
}
+#ifndef INHERIT_LANGUAGE
+ tmpfont.realize(textclasslist.TextClass(buf->params.textclass).defaultfont());
+#else
tmpfont.realize(textclasslist.TextClass(buf->params.textclass).defaultfont(),
buf->params.language);
+#endif
return tmpfont;
}
// 1% goes here
LyXFont f = par->getFontSettings(buf->params,
pos);
+#ifndef INHERIT_LANGUAGE
+ return f.realize(layout.reslabelfont);
+#else
return f.realize(layout.reslabelfont, buf->params.language);
+#endif
} else {
LyXFont f = par->getFontSettings(buf->params, pos);
+#ifndef INHERIT_LANGUAGE
+ return f.realize(layout.resfont);
+#else
return f.realize(layout.resfont, buf->params.language);
+#endif
}
}
}
LyXFont tmpfont = par->getFontSettings(buf->params, pos);
+#ifndef INHERIT_LANGUAGE
+ tmpfont.realize(layoutfont);
+#else
tmpfont.realize(layoutfont, buf->params.language);
+#endif
return realizeFont(tmpfont, buf, par);
}
{
Buffer const * buf = bv->buffer();
LyXFont font = getFont(buf, par, pos);
- font.update(fnt, toggleall);
+ font.update(fnt, buf->params.language, toggleall);
// Let the insets convert their font
if (par->getChar(pos) == Paragraph::META_INSET) {
Inset * inset = par->getInset(pos);
while (!layoutfont.resolved() && tp && tp->getDepth()) {
tp = tp->outerHook();
if (tp)
+#ifndef INHERIT_LANGUAGE
+ layoutfont.realize(textclasslist.
+ Style(buf->params.textclass,
+ tp->getLayout()).font);
+#else
layoutfont.realize(textclasslist.
Style(buf->params.textclass,
tp->getLayout()).font,
buf->params.language);
+#endif
}
}
+#ifndef INHERIT_LANGUAGE
+ layoutfont.realize(textclasslist.TextClass(buf->params.textclass).defaultfont());
+#else
layoutfont.realize(textclasslist.TextClass(buf->params.textclass).defaultfont(),
buf->params.language);
+#endif
// Now, reduce font against full layout font
font.reduce(layoutfont);
while (!layoutfont.resolved() && tp && tp->getDepth()) {
tp = tp->outerHook();
if (tp)
+#ifndef INHERIT_LANGUAGE
+ layoutfont.realize(textclasslist.
+ Style(buf->params.textclass,
+ tp->getLayout()).font);
+#else
layoutfont.realize(textclasslist.
Style(buf->params.textclass,
tp->getLayout()).font,
buf->params.language);
+#endif
}
}
+#ifndef INHERIT_LANGUAGE
+ layoutfont.realize(textclasslist.TextClass(buf->params.textclass).defaultfont());
+#else
layoutfont.realize(textclasslist.TextClass(buf->params.textclass).defaultfont(),
buf->params.language);
+#endif
// Now, reduce font against full layout font
font.reduce(layoutfont);
cursor.par());
}
// Update current font
- real_current_font.update(font, toggleall);
+ real_current_font.update(font,
+ bview->buffer()->params.language,
+ toggleall);
// Reduce to implicit settings
current_font = real_current_font;
current_font.reduce(layoutfont);
// And resolve it completely
+#ifndef INHERIT_LANGUAGE
+ real_current_font.realize(layoutfont);
+#else
real_current_font.realize(layoutfont,
bview->buffer()->params.language);
+#endif
return;
}