X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfont.C;h=fa54c547b5ae2fbb59bb53b5519684f2765e2367;hb=f448e22d483e1370bcbfbb7be8cb47ad7251ed77;hp=8e6f3ba84e44c2a146f7cb801b75391c3d4fc173;hpb=45a03f4f67bb00f8142e465c615f348f0622eb32;p=lyx.git diff --git a/src/lyxfont.C b/src/lyxfont.C index 8e6f3ba84e..fa54c547b5 100644 --- a/src/lyxfont.C +++ b/src/lyxfont.C @@ -192,7 +192,7 @@ LyXFont & LyXFont::decSize() /// Increases font size by one LyXFont & LyXFont::incSize() { - switch(size()) { + switch (size()) { case SIZE_HUGER: break; case SIZE_HUGE: setSize(SIZE_HUGER); break; case SIZE_LARGEST: setSize(SIZE_HUGE); break; @@ -245,7 +245,7 @@ LyXFont::FONT_MISC_STATE LyXFont::setMisc(FONT_MISC_STATE newfont, void LyXFont::update(LyXFont const & newfont, Language const * document_language, bool toggleall) { - if(newfont.family() == family() && toggleall) + if (newfont.family() == family() && toggleall) setFamily(INHERIT_FAMILY); // toggle 'back' else if (newfont.family() != IGNORE_FAMILY) setFamily(newfont.family()); @@ -268,7 +268,7 @@ void LyXFont::update(LyXFont const & newfont, break; } - if(newfont.shape() == shape() && toggleall) + if (newfont.shape() == shape() && toggleall) setShape(INHERIT_SHAPE); // toggle 'back' else if (newfont.shape() != IGNORE_SHAPE) setShape(newfont.shape()); @@ -290,6 +290,7 @@ void LyXFont::update(LyXFont const & newfont, setNoun(setMisc(newfont.noun(), noun())); setLatex(setMisc(newfont.latex(), latex())); + setNumber(setMisc(newfont.number(), number())); if (newfont.language() == language() && toggleall) if (language() == document_language) setLanguage(default_language); @@ -383,12 +384,7 @@ bool LyXFont::resolved() const /// Build GUI description of font state string const LyXFont::stateText(BufferParams * params) const { -//#ifdef HAVE_SSTREAM std::ostringstream ost; -//#else -// char str[1024]; -// ostrstream ost(str, 1024); -//#endif if (family() != INHERIT_FAMILY) ost << _(GUIFamilyNames[family()]) << ", "; if (series() != INHERIT_SERIES) @@ -411,15 +407,12 @@ string const LyXFont::stateText(BufferParams * params) const ost << _("Latex ") << _(GUIMiscNames[latex()]) << ", "; if (bits == inherit) ost << _("Default") << ", "; - if (!params || (language() != params->language_info && - language()->lang() != "default")) - ost << _("Language: ") << _(language()->display().c_str()); -//#ifdef HAVE_SSTREAM + if (!params || (language() != params->language)) + ost << _("Language: ") << _(language()->display()) << ", "; + if (number() != OFF) + ost << _(" Number ") << _(GUIMiscNames[number()]); + string buf(ost.str().c_str()); -//#else -// ost << '\0'; -// string buf(ost.str()); -//#endif buf = strip(buf, ' '); buf = strip(buf, ','); return buf; @@ -622,6 +615,9 @@ void LyXFont::lyxWriteChanges(LyXFont const & orgfont, ostream & os) const if (orgfont.emph() != emph()) { os << "\\emph " << LyXMiscNames[emph()] << " \n"; } + if (orgfont.number() != number()) { + os << "\\numeric " << LyXMiscNames[number()] << " \n"; + } if (orgfont.underbar() != underbar()) { // This is only for backwards compatibility switch (underbar()) { @@ -665,8 +661,7 @@ void LyXFont::lyxWriteChanges(LyXFont const & orgfont, ostream & os) const if (col_str == "inherit") col_str = "default"; os << "\\color " << col_str << "\n"; } - if (orgfont.language() != language() && - language()->lang() != "default") { + if (orgfont.language() != language()) { if (language()) os << "\\lang " << language()->lang() << "\n"; else @@ -683,28 +678,31 @@ int LyXFont::latexWriteStartChanges(ostream & os, LyXFont const & base, int count = 0; bool env = false; - if (language() != base.language() && language() != prev.language() && - language()->lang() != "default") { + if (language()->babel() != base.language()->babel() && + language()->babel() != prev.language()->babel()) { if (isRightToLeft() != prev.isRightToLeft()) { if (isRightToLeft()) { os << "\\R{"; count += 3; - env = true; //We have opened a new environment } else { os << "\\L{"; count += 3; - env = true; //We have opened a new environment } } else { string tmp = '{' + subst(lyxrc.language_command_begin, - "$$lang", language()->lang()); + "$$lang", language()->babel()); os << tmp; count += tmp.length(); - env = true; //We have opened a new environment } } + if (number() == ON && prev.number() != ON && + language()->lang() == "hebrew") { + os << "{\\beginL "; + count += 9; + } + LyXFont f = *this; f.reduce(base); @@ -776,19 +774,13 @@ int LyXFont::latexWriteEndChanges(ostream & os, LyXFont const & base, int count = 0; bool env = false; - if (language() != base.language() && language() != next.language() - && language()->lang() != "default") { - os << "}"; - ++count; - env = true; // Size change need not bother about closing env. - } - LyXFont f = *this; // why do you need this? f.reduce(base); // why isn't this just "reduce(base);" (Lgb) // Because this function is const. Everything breaks if this // method changes the font it represents. There is no speed penalty // by using the temporary. (Asger) + if (f.family() != INHERIT_FAMILY) { os << '}'; ++count; @@ -832,6 +824,17 @@ int LyXFont::latexWriteEndChanges(ostream & os, LyXFont const & base, } } + if (number() == ON && next.number() != ON && + language()->lang() == "hebrew") { + os << "\\endL}"; + count += 6; + } + + if (language() != base.language() && language() != next.language()) { + os << "}"; + ++count; + } + return count; }