+LyXFont::LyXFont()
+ : bits(sane), lang(default_language)
+{}
+
+
+LyXFont::LyXFont(LyXFont::FONT_INIT1)
+ : bits(inherit), lang(default_language)
+{}
+
+
+LyXFont::LyXFont(LyXFont::FONT_INIT2)
+ : bits(ignore), lang(ignore_language)
+{}
+
+
+LyXFont::LyXFont(LyXFont::FONT_INIT3)
+ : bits(sane), lang(default_language)
+{}
+
+
+LyXFont::LyXFont(LyXFont::FONT_INIT1, Language const * l)
+ : bits(inherit), lang(l)
+{}
+
+
+LyXFont::LyXFont(LyXFont::FONT_INIT2, Language const * l)
+ : bits(ignore), lang(l)
+{}
+
+
+LyXFont::LyXFont(LyXFont::FONT_INIT3, Language const * l)
+ : bits(sane), lang(l)
+{}
+
+
+LyXFont::FONT_MISC_STATE LyXFont::underbar() const
+{
+ return bits.underbar;
+}
+
+
+LColor_color LyXFont::color() const
+{
+ return LColor::color(bits.color);
+}
+
+
+Language const * LyXFont::language() const
+{
+ return lang;
+}
+
+
+LyXFont::FONT_MISC_STATE LyXFont::number() const
+{
+ return bits.number;
+}
+
+
+bool LyXFont::isRightToLeft() const
+{
+ return lang->RightToLeft();
+}
+
+
+bool LyXFont::isVisibleRightToLeft() const
+{
+ return (lang->RightToLeft() &&
+ number() != ON);
+}
+
+
+void LyXFont::setFamily(LyXFont::FONT_FAMILY f)