]> git.lyx.org Git - lyx.git/blobdiff - src/FontInfo.h
RefChanger
[lyx.git] / src / FontInfo.h
index 7e2db94de06c102fbf33fa11e0ca27a6af00ebf1..370610c84e71c1395a37770a509e923d14d6f0c1 100644 (file)
 #include "Color.h"
 #include "ColorCode.h"
 #include "FontEnums.h"
+
+#include "support/Changer.h"
 #include "support/strfwd.h"
 
+
 namespace lyx {
 
 class Lexer;
@@ -56,8 +59,8 @@ public:
        /// Increases font size by one
        FontInfo & incSize();
 
-       /// Accessor methods.
-       ///@{
+       /// \name Accessor methods
+       //@{
        FontFamily family() const { return family_; }
        void setFamily(FontFamily f) { family_ = f; }
        FontSeries series() const { return series_; }
@@ -84,7 +87,7 @@ public:
        void setColor(ColorCode c) { color_ = c; }
        ColorCode background() const { return background_; }
        void setBackground(ColorCode b) { background_ = b; }
-       ///@}
+       //@}
 
        ///
        void update(FontInfo const & newfont, bool toggleall);
@@ -114,7 +117,7 @@ public:
                if (noun_ == FONT_ON)
                        return SMALLCAPS_SHAPE;
                if (emph_ == FONT_ON)
-                       return (shape_ == UP_SHAPE) ? ITALIC_SHAPE : UP_SHAPE;
+                       return (shape_ == ITALIC_SHAPE) ? UP_SHAPE : ITALIC_SHAPE;
                return shape_;
        }
 
@@ -127,6 +130,7 @@ public:
                case CMEX_FAMILY:
                case MSA_FAMILY:
                case MSB_FAMILY:
+               case STMARY_FAMILY:
                case WASY_FAMILY:
                case ESINT_FAMILY:
                        return true;
@@ -135,6 +139,14 @@ public:
                }
        }
 
+       /// Temporarily replace the color with \param color.
+       Changer changeColor(ColorCode const color, bool cond = true);
+       /// Temporarily replace the shape with \param shape.
+       Changer changeShape(FontShape const shape, bool cond = true);
+       /// Temporarily replace the FontInfo with \param font, and optionally
+       /// \param realize the \param font against the current FontInfo.
+       Changer change(FontInfo font, bool realize = false, bool cond = true);
+
 private:
        friend bool operator==(FontInfo const & lhs, FontInfo const & rhs);
 
@@ -220,6 +232,9 @@ FontState setLyXMisc(std::string const &);
 /// Read a font specification from Lexer. Used for layout files.
 FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font);
 
+/// Write a font specification. Used for layout files.
+void lyxWrite(std::ostream &, FontInfo const &, std::string const &, int);
+
 } // namespace lyx
 
 #endif