]> git.lyx.org Git - lyx.git/blobdiff - src/FontInfo.h
A little cleanup of the layout files.
[lyx.git] / src / FontInfo.h
index dd8f81a9956a68a25351b8f994255da1d44585c1..3833b7c87b29077aba23d133b1a8bd2faafa8ac1 100644 (file)
@@ -4,7 +4,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author Jean-Marc Lasgouttes
  * \author Angus Leeming
  * \author Dekel Tsur
@@ -19,6 +19,7 @@
 #include "tex2lyx/Font.h"
 #else
 
+#include "Color.h"
 #include "ColorCode.h"
 #include "FontEnums.h"
 
@@ -29,9 +30,9 @@ class FontInfo
 {
 public:
        ///
-       FontInfo::FontInfo();
+       FontInfo();
        ///
-       FontInfo::FontInfo(
+       FontInfo(
                FontFamily family,
                FontSeries series,
                FontShape shape,
@@ -40,11 +41,15 @@ public:
                ColorCode background,
                FontState emph,
                FontState underbar,
+               FontState strikeout,
+               FontState uuline,
+               FontState uwave,
                FontState noun,
-               FontState number
-               ): family_(family), series_(series), shape_(shape), size_(size), 
-               color_(color), background_(background), emph_(emph),
-               underbar_(underbar), noun_(noun), number_(number)
+               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)
        {}
 
        /// Decreases font size by one
@@ -66,6 +71,12 @@ public:
        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 uuline() const { return uuline_; }
+       void setUuline(FontState s) { uuline_ = s; }
+       FontState uwave() const { return uwave_; }
+       void setUwave(FontState s) { uwave_ = s; }
        FontState noun() const { return noun_; }
        void setNoun(FontState n) { noun_ = n; }
        FontState number() const { return number_; }
@@ -88,11 +99,14 @@ public:
        /// Is a given font fully resolved?
        bool resolved() const;
 
-       ///
-       ColorCode realColor() const;
+       /// 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; }
 
        /// Converts logical attributes to concrete shape attribute
-       // Try hard to inline this as it shows up with 4.6 % in the profiler.
+       /// Try hard to inline this as it shows up with 4.6 % in the profiler.
        FontShape realShape() const
        {
                if (noun_ == FONT_ON)
@@ -119,22 +133,6 @@ public:
                }
        }
 
-       /*
-       FontInfo & operator=(FontInfo const & rhs)
-       {
-               family_ = rhs.family_;
-               series_ = rhs.series_;
-               shape_ = rhs.shape_;
-               size_ = rhs.size_;
-               color_ = rhs.color_;
-               background_ = rhs.background_;
-               emph_ = rhs.emph_;
-               underbar_ = rhs.underbar_;
-               noun_ = rhs.noun_;
-               number_ = rhs.number_;
-       }
-       */
-
 private:
        friend bool operator==(FontInfo const & lhs, FontInfo const & rhs);
 
@@ -150,11 +148,19 @@ private:
        ColorCode color_;
        ///
        ColorCode background_;
+       /// The color used for painting
+       Color paint_color_;
        ///
        FontState emph_;
        ///
        FontState underbar_;
        ///
+       FontState strikeout_;
+       ///
+       FontState uuline_;
+       ///
+       FontState uwave_;
+       ///
        FontState noun_;
        ///
        FontState number_;
@@ -171,6 +177,9 @@ inline bool operator==(FontInfo const & lhs, FontInfo const & rhs)
                && lhs.background_ == rhs.background_
                && lhs.emph_ == rhs.emph_
                && lhs.underbar_ == rhs.underbar_
+               && lhs.strikeout_ == rhs.strikeout_
+               && lhs.uuline_ == rhs.uuline_
+               && lhs.uwave_ == rhs.uwave_
                && lhs.noun_ == rhs.noun_
                && lhs.number_ == rhs.number_;
 }