]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfont.C
add config.h
[lyx.git] / src / lyxfont.C
index ab6dc162b972f10288627e660324043ddb31018f..3b5e883d23ebe492690d6efdac707c37bd1cda4b 100644 (file)
@@ -23,6 +23,7 @@
 #include "LColor.h"
 #include "lyxlex.h"
 #include "lyxrc.h"
+#include "output_latex.h"
 
 #include "support/lstrings.h"
 
@@ -37,7 +38,6 @@ using support::subst;
 using std::endl;
 using std::string;
 using std::ostream;
-using std::ostringstream;
 
 #ifndef CXX_GLOBAL_CSTD
 using std::strlen;
@@ -493,37 +493,36 @@ bool LyXFont::resolved() const
 }
 
 
-/// Build GUI description of font state
-string const LyXFont::stateText(BufferParams * params) const
+docstring const LyXFont::stateText(BufferParams * params) const
 {
-       ostringstream os;
+       odocstringstream os;
        if (family() != INHERIT_FAMILY)
-               os << to_utf8(_(GUIFamilyNames[family()])) << ", ";
+               os << _(GUIFamilyNames[family()]) << ", ";
        if (series() != INHERIT_SERIES)
-               os << to_utf8(_(GUISeriesNames[series()])) << ", ";
+               os << _(GUISeriesNames[series()]) << ", ";
        if (shape() != INHERIT_SHAPE)
-               os << to_utf8(_(GUIShapeNames[shape()])) << ", ";
+               os << _(GUIShapeNames[shape()]) << ", ";
        if (size() != INHERIT_SIZE)
-               os << to_utf8(_(GUISizeNames[size()])) << ", ";
+               os << _(GUISizeNames[size()]) << ", ";
        if (color() != LColor::inherit)
                os << lcolor.getGUIName(color()) << ", ";
        if (emph() != INHERIT)
-               os << to_utf8(bformat(_("Emphasis %1$s, "),
-                             _(GUIMiscNames[emph()])));
+               os << bformat(_("Emphasis %1$s, "),
+                             _(GUIMiscNames[emph()]));
        if (underbar() != INHERIT)
-               os << to_utf8(bformat(_("Underline %1$s, "),
-                             _(GUIMiscNames[underbar()])));
+               os << bformat(_("Underline %1$s, "),
+                             _(GUIMiscNames[underbar()]));
        if (noun() != INHERIT)
-               os << to_utf8(bformat(_("Noun %1$s, "),
-                             _(GUIMiscNames[noun()])));
+               os << bformat(_("Noun %1$s, "),
+                             _(GUIMiscNames[noun()]));
        if (bits == inherit)
-               os << to_utf8(_("Default")) << ", ";
+               os << _("Default") << ", ";
        if (!params || (language() != params->language))
-               os << to_utf8(bformat(_("Language: %1$s, "),
-                             _(language()->display())));
+               os << bformat(_("Language: %1$s, "),
+                             _(language()->display()));
        if (number() != OFF)
-               os << to_utf8(bformat(_("  Number %1$s"),
-                               _(GUIMiscNames[number()])));
+               os << bformat(_("  Number %1$s"),
+                             _(GUIMiscNames[number()]));
        return rtrim(os.str(), ", ");
 }
 
@@ -739,11 +738,13 @@ void LyXFont::lyxWriteChanges(LyXFont const & orgfont,
 /// Writes the head of the LaTeX needed to impose this font
 // Returns number of chars written.
 int LyXFont::latexWriteStartChanges(odocstream & os, LyXFont const & base,
-                                   LyXFont const & prev) const
+                                    LyXFont const & prev,
+                                    BufferParams const & bparams) const
 {
-       int count = 0;
        bool env = false;
 
+       int count = switchEncoding(os, bparams, *(prev.language()->encoding()),
+                                  *(language()->encoding()));
        if (language()->babel() != base.language()->babel() &&
            language() != prev.language()) {
                if (isRightToLeft() != prev.isRightToLeft()) {
@@ -835,7 +836,8 @@ int LyXFont::latexWriteStartChanges(odocstream & os, LyXFont const & base,
 // Returns number of chars written
 // This one corresponds to latexWriteStartChanges(). (Asger)
 int LyXFont::latexWriteEndChanges(odocstream & os, LyXFont const & base,
-                                 LyXFont const & next) const
+                                  LyXFont const & next,
+                                  BufferParams const & bparams) const
 {
        int count = 0;
        bool env = false;
@@ -899,6 +901,8 @@ int LyXFont::latexWriteEndChanges(odocstream & os, LyXFont const & base,
                os << '}';
                ++count;
        }
+       count += switchEncoding(os, bparams, *(language()->encoding()),
+                               *(next.language()->encoding()));
 
        return count;
 }