X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMetricsInfo.h;h=195d705459c6860a338fc41d553d1b1e96f935d0;hb=fd3a41e035a44a66a3adcb9fa0f970f32e9d260c;hp=a711a2a416e14a303ba8a055dfb62b1887d19cbb;hpb=09a0e37b15d99167e6320af56aa124aac3694dd4;p=lyx.git diff --git a/src/MetricsInfo.h b/src/MetricsInfo.h index a711a2a416..195d705459 100644 --- a/src/MetricsInfo.h +++ b/src/MetricsInfo.h @@ -18,15 +18,14 @@ #include "FontInfo.h" #include "support/strfwd.h" -#include "support/types.h" #include -class BufferView; namespace lyx { namespace frontend { class Painter; } +class BufferView; class Inset; class MacroContext; @@ -103,6 +102,11 @@ public: /// \param sel whether to take the selection state into account ColorCode backgroundColor(Inset const * inset, bool sel = true) const; + /// Determines the text color based on the intended color, the + /// change tracking state and the selection state. + /// \param color what the color should be by default + Color textColor(Color const & color) const; + /// MetricsBase base; /// @@ -113,6 +117,8 @@ public: Change change_; /// Whether the parent is selected as a whole bool selected; + /// Whether the spell checker is enabled for the parent + bool do_spellcheck; /// bool full_repaint; /// Current background color @@ -122,14 +128,16 @@ public: class TextMetricsInfo {}; -/// Generic base for temporarily changing things. -/// The original state gets restored when the Changer is destructed. +/// Generic base for temporarily changing things. The derived class is +/// responsible for restoring the original state when the Changer is +/// destructed. template class Changer { -public: - /// - Changer(Struct & orig) : orig_(orig) {} protected: + /// + Changer(Struct & orig, Temp const & save) : orig_(orig), save_(save) {} + /// + Changer(Struct & orig) : orig_(orig), save_(orig) {} /// Struct & orig_; /// @@ -153,10 +161,15 @@ public: class FontSetChanger : public Changer { public: /// - FontSetChanger(MetricsBase & mb, docstring const & font); - FontSetChanger(MetricsBase & mb, char const * const font); + FontSetChanger(MetricsBase & mb, docstring const & font, + bool really_change_font = true); + FontSetChanger(MetricsBase & mb, char const * const font, + bool really_change_font = true); /// ~FontSetChanger(); +private: + /// + bool change_; }; @@ -217,12 +230,16 @@ public: // temporarily change the used color -class ColorChanger : public Changer { +class ColorChanger : public Changer { public: /// - ColorChanger(FontInfo & font, std::string const & color); + ColorChanger(FontInfo & font, ColorCode color, + bool really_change_color = true); /// ~ColorChanger(); +private: + /// + bool change_; }; } // namespace lyx