]> git.lyx.org Git - lyx.git/blobdiff - src/FontInfo.h
Update stats display if a stat is (un)selected
[lyx.git] / src / FontInfo.h
index b8f71e9bd3f392860a89210ee141138e61f58e1b..3feefca662b562661ca8d626a3ddc737148e7735 100644 (file)
@@ -39,19 +39,22 @@ public:
                FontSeries series,
                FontShape  shape,
                FontSize   size,
+               MathStyle  style,
                ColorCode  color,
                ColorCode  background,
                FontState  emph,
                FontState  underbar,
                FontState  strikeout,
+               FontState  xout,
                FontState  uuline,
                FontState  uwave,
                FontState  noun,
-               FontState  number)
-               : family_(family), series_(series), shape_(shape), size_(size), 
-               color_(color), background_(background), paint_color_(), emph_(emph),
-               underbar_(underbar), strikeout_(strikeout), uuline_(uuline),
-               uwave_(uwave), noun_(noun), number_(number)
+               FontState  number,
+               FontState  nospellcheck)
+               : family_(family), series_(series), shape_(shape), size_(size),
+               style_(style), color_(color), background_(background), emph_(emph),
+               underbar_(underbar), strikeout_(strikeout), xout_(xout), uuline_(uuline),
+               uwave_(uwave), noun_(noun), number_(number), nospellcheck_(nospellcheck)
        {}
 
        /// Decreases font size by one
@@ -69,12 +72,16 @@ public:
        void setShape(FontShape s) { shape_ = s; }
        FontSize size() const { return size_; }
        void setSize(FontSize s) { size_ = s; }
+       MathStyle style() const {return style_; }
+       void setStyle(MathStyle s) { style_ = s; }
        FontState emph() const { return emph_; }
        void setEmph(FontState e) { emph_ = e; }
        FontState underbar() const { return underbar_; }
        void setUnderbar(FontState u) { underbar_ = u; }
        FontState strikeout() const { return strikeout_; }
        void setStrikeout(FontState s) { strikeout_ = s; }
+       FontState xout() const { return xout_; }
+       void setXout(FontState s) { xout_ = s; }
        FontState uuline() const { return uuline_; }
        void setUuline(FontState s) { uuline_ = s; }
        FontState uwave() const { return uwave_; }
@@ -87,6 +94,8 @@ public:
        void setColor(ColorCode c) { color_ = c; }
        ColorCode background() const { return background_; }
        void setBackground(ColorCode b) { background_ = b; }
+       FontState nospellcheck() const { return nospellcheck_; }
+       void setNoSpellcheck(FontState n) { nospellcheck_ = n; }
        //@}
 
        ///
@@ -101,12 +110,15 @@ public:
        /// Is a given font fully resolved?
        bool resolved() const;
 
-       /// The real color of the font. This can be the color that is 
+       /// The real color of the font. This can be the color that is
        /// set for painting, the color of the font or a default color.
        Color realColor() const;
        /// Sets the color which is used during painting
        void setPaintColor(Color c) { paint_color_ = c; }
 
+       /// Compute the font size, taking size and math style into account.
+       double realSize() const;
+
        ///
        docstring asCSS() const;
 
@@ -117,7 +129,8 @@ public:
                if (noun_ == FONT_ON)
                        return SMALLCAPS_SHAPE;
                if (emph_ == FONT_ON)
-                       return (shape_ == ITALIC_SHAPE) ? UP_SHAPE : ITALIC_SHAPE;
+                       return (shape_ == ITALIC_SHAPE || shape_ == SLANTED_SHAPE)
+                               ? UP_SHAPE : ITALIC_SHAPE;
                return shape_;
        }
 
@@ -140,12 +153,17 @@ public:
        }
 
        /// Temporarily replace the color with \param color.
-       Changer changeColor(ColorCode const color, bool cond = true);
+       Changer changeColor(ColorCode const color);
        /// Temporarily replace the shape with \param shape.
-       Changer changeShape(FontShape const shape, bool cond = true);
+       Changer changeShape(FontShape const shape);
+       /// Temporarily replace the style
+       Changer changeStyle(MathStyle style);
        /// 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);
+       Changer change(FontInfo font, bool realize = false);
+
+       /// Build GUI description of font state
+       docstring const stateText(bool const terse = false) const;
 
 private:
        friend bool operator==(FontInfo const & lhs, FontInfo const & rhs);
@@ -159,6 +177,8 @@ private:
        ///
        FontSize size_;
        ///
+       MathStyle style_;
+       ///
        ColorCode color_;
        ///
        ColorCode background_;
@@ -171,6 +191,8 @@ private:
        ///
        FontState strikeout_;
        ///
+       FontState xout_;
+       ///
        FontState uuline_;
        ///
        FontState uwave_;
@@ -178,6 +200,8 @@ private:
        FontState noun_;
        ///
        FontState number_;
+       ///
+       FontState nospellcheck_;
 };
 
 
@@ -187,15 +211,18 @@ inline bool operator==(FontInfo const & lhs, FontInfo const & rhs)
                && lhs.series_ == rhs.series_
                && lhs.shape_ == rhs.shape_
                && lhs.size_ == rhs.size_
+               && lhs.style_ == rhs.style_
                && lhs.color_ == rhs.color_
                && lhs.background_ == rhs.background_
                && lhs.emph_ == rhs.emph_
                && lhs.underbar_ == rhs.underbar_
                && lhs.strikeout_ == rhs.strikeout_
+               && lhs.xout_ == rhs.xout_
                && lhs.uuline_ == rhs.uuline_
                && lhs.uwave_ == rhs.uwave_
                && lhs.noun_ == rhs.noun_
-               && lhs.number_ == rhs.number_;
+               && lhs.number_ == rhs.number_
+               && lhs.nospellcheck_ == rhs.nospellcheck_;
 }