X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMetricsInfo.h;h=a711a2a416e14a303ba8a055dfb62b1887d19cbb;hb=86fab2cefa122a5b0c0ee4ade472e41d9a3ff1cf;hp=5bb93b6e8c4fdc156e668c56c8d9d17bb7ad55d3;hpb=a5263e0f927034885870a65053ef3908d1c6f885;p=lyx.git diff --git a/src/MetricsInfo.h b/src/MetricsInfo.h index 5bb93b6e8c..a711a2a416 100644 --- a/src/MetricsInfo.h +++ b/src/MetricsInfo.h @@ -4,7 +4,8 @@ * 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. */ @@ -12,6 +13,7 @@ #ifndef METRICSINFO_H #define METRICSINFO_H +#include "Changes.h" #include "ColorCode.h" #include "FontInfo.h" @@ -25,6 +27,8 @@ class BufferView; namespace lyx { namespace frontend { class Painter; } +class Inset; +class MacroContext; /// Standard Sizes (mode styles) @@ -72,10 +76,12 @@ public: /// MetricsInfo(); /// - MetricsInfo(BufferView * bv, FontInfo const & font, int textwidth); + MetricsInfo(BufferView * bv, FontInfo const & font, int textwidth, MacroContext const & mc); /// MetricsBase base; + /// The context to resolve macros + MacroContext const & macrocontext; }; @@ -91,6 +97,11 @@ 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; /// MetricsBase base; @@ -98,48 +109,21 @@ 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; }; class TextMetricsInfo {}; -enum ScreenUpdateStrategy { - NoScreenUpdate, - SingleParUpdate, - FullScreenUpdate, - DecorationUpdate -}; - -class ViewMetricsInfo -{ -public: - ViewMetricsInfo() - : p1(0), p2(0), y1(0), y2(0), - update_strategy(FullScreenUpdate), size(0) - {} - ViewMetricsInfo(pit_type p1, pit_type p2, int y1, int y2, - ScreenUpdateStrategy updatestrategy, pit_type size) - : p1(p1), p2(p2), y1(y1), y2(y2), - update_strategy(updatestrategy), size(size) - {} - - pit_type p1; - pit_type p2; - int y1; - int y2; - ScreenUpdateStrategy update_strategy; - pit_type size; -}; - - -// Generic base for temporarily changing things. -// The original state gets restored when the Changer is destructed. +/// Generic base for temporarily changing things. +/// The original state gets restored when the Changer is destructed. template class Changer { public: