X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMetricsInfo.h;h=020b25f87428baa84e912aa915c518beb082177f;hb=9ef7efd85a09edcca640f4f0fafbeb05548c5c99;hp=e091dc78308ff55760e03d2867223997332dbe59;hpb=926abae7536ad564072163057bf8a95758d0be27;p=lyx.git diff --git a/src/MetricsInfo.h b/src/MetricsInfo.h index e091dc7830..020b25f874 100644 --- a/src/MetricsInfo.h +++ b/src/MetricsInfo.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * \author Stefan Schimanski * * Full author contact details are available in file CREDITS. @@ -13,6 +13,7 @@ #ifndef METRICSINFO_H #define METRICSINFO_H +#include "Changes.h" #include "ColorCode.h" #include "FontInfo.h" @@ -26,6 +27,7 @@ class BufferView; namespace lyx { namespace frontend { class Painter; } +class Inset; class MacroContext; @@ -95,6 +97,16 @@ public: void draw(int x, int y, char_type c); /// void draw(int x, int y, docstring const & str); + /// Determines the background color for the specified inset based on the + /// selection state, the background color inherited from the parent inset + /// and the inset's own background color. + /// \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; @@ -102,11 +114,13 @@ public: frontend::Painter & pain; /// Whether the text at this point is right-to-left (for InsetNewline) bool ltr_pos; - /// Whether the parent is deleted (change tracking) - bool erased_; + /// The change the parent is part of (change tracking) + Change change_; + /// Whether the parent is selected as a whole + bool selected; /// bool full_repaint; - /// + /// Current background color ColorCode background_color; }; @@ -144,10 +158,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_; }; @@ -208,12 +227,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