X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFontInfo.h;h=3833b7c87b29077aba23d133b1a8bd2faafa8ac1;hb=4df7d8ab1ae443119057562fb76c2e438c053eef;hp=dd8f81a9956a68a25351b8f994255da1d44585c1;hpb=5ddc612b735317d5b22553a63aad7879503e3950;p=lyx.git diff --git a/src/FontInfo.h b/src/FontInfo.h index dd8f81a995..3833b7c87b 100644 --- a/src/FontInfo.h +++ b/src/FontInfo.h @@ -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_; }