X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FMetricsInfo.h;h=3f18724cb72313e23df648116519c42f1317f69d;hb=e2bc7ffae3eb387661064be8b9dc927742f9e7e8;hp=05acbbbb045b9f73cbd1608b66686e23498e9a7c;hpb=183b188ebe3489aebb372c00818afaab870cf4b8;p=lyx.git diff --git a/src/MetricsInfo.h b/src/MetricsInfo.h index 05acbbbb04..3f18724cb7 100644 --- a/src/MetricsInfo.h +++ b/src/MetricsInfo.h @@ -18,19 +18,22 @@ #include "FontInfo.h" #include "support/strfwd.h" +#include "support/Changer.h" + #include -class BufferView; namespace lyx { namespace frontend { class Painter; } +class BufferView; class Inset; class MacroContext; /// Standard Sizes (mode styles) +/// note: These values are hard-coded in changeStyle enum Styles { /// LM_ST_DISPLAY = 0, @@ -63,6 +66,16 @@ public: std::string fontname; /// This is the width available in pixels int textwidth; + + /// Temporarily change a full font. + Changer changeFontSet(docstring const & font, bool cond = true); + Changer changeFontSet(char const * font, bool cond = true); + /// Temporarily change the font size and the math style. + Changer changeStyle(Styles style, bool cond = true); + // Temporarily change to the style suitable for use in fractions + Changer changeFrac(bool cond = true); + // Temporarily change the style to (script)script style + Changer changeScript(bool cond = true); }; @@ -117,6 +130,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 @@ -125,119 +140,6 @@ public: class TextMetricsInfo {}; - -/// Generic base for temporarily changing things. -/// The original state gets restored when the Changer is destructed. -template -class Changer { -public: - /// - Changer(Struct & orig) : orig_(orig) {} -protected: - /// - Struct & orig_; - /// - Temp save_; -}; - - - -// temporarily change some aspect of a font -class FontChanger : public Changer { -public: - /// - FontChanger(FontInfo & orig, docstring const & font); - FontChanger(MetricsBase & mb, char const * const font); - /// - ~FontChanger(); -}; - - -// temporarily change a full font -class FontSetChanger : public Changer { -public: - /// - 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_; -}; - - -// temporarily change the style -class StyleChanger : public Changer { -public: - /// - StyleChanger(MetricsBase & mb, Styles style); - /// - ~StyleChanger(); -}; - - -// temporarily change the style to script style -class ScriptChanger : public StyleChanger { -public: - /// - ScriptChanger(MetricsBase & mb); -}; - - -// temporarily change the style suitable for use in fractions -class FracChanger : public StyleChanger { -public: - /// - FracChanger(MetricsBase & mb); -}; - - -// temporarily change the style suitable for use in tabulars and arrays -class ArrayChanger : public StyleChanger { -public: - /// - ArrayChanger(MetricsBase & mb); -}; - - - -// temporarily change the shape of a font -class ShapeChanger : public Changer { -public: - /// - ShapeChanger(FontInfo & font, FontShape shape); - /// - ~ShapeChanger(); -}; - - -// temporarily change the available text width -class WidthChanger : public Changer -{ -public: - /// - WidthChanger(MetricsBase & mb, int width); - /// - ~WidthChanger(); -}; - - -// temporarily change the used color -class ColorChanger : public Changer { -public: - /// - ColorChanger(FontInfo & font, ColorCode color, - bool really_change_color = true); - /// - ~ColorChanger(); -private: - /// - bool change_; -}; - } // namespace lyx #endif