1 #ifndef MATH_METRICSINFO_H
2 #define MATH_METRICSINFO_H
12 /// Standard Math Sizes (Math mode styles)
25 struct MathMetricsBase {
38 struct MathMetricsInfo {
46 /// used to pass some info down
47 MathNestInset const * inset;
55 struct MathPainterInfo {
57 MathPainterInfo(Painter & p);
59 void draw(int x, int y, char c);
68 struct TextMetricsInfo {};
71 // Generic base for temporarily changing things.
72 // The original state gets restored when the Changer is destructed
73 template <class Struct, class Temp = Struct>
76 MathChanger(Struct & orig) : orig_(orig) {}
86 struct MathScriptChanger : public MathChanger<MathMetricsBase> {
88 MathScriptChanger(MathMetricsBase & orig);
94 struct MathFracChanger : public MathChanger<MathMetricsBase> {
96 MathFracChanger(MathMetricsBase & orig);
103 struct MathFontChanger : public MathChanger<LyXFont> {
105 MathFontChanger(LyXFont & orig, char const * font);
111 struct MathFontSetChanger : public MathChanger<MathMetricsBase> {
113 MathFontSetChanger(MathMetricsBase & mb, char const * font);
115 ~MathFontSetChanger();
119 struct MathStyleChanger : public MathChanger<MathMetricsBase> {
121 MathStyleChanger(MathMetricsBase & mb, MathStyles shape);
127 struct MathShapeChanger : public MathChanger<LyXFont, LyXFont::FONT_SHAPE> {
129 MathShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape);