#ifndef MATH_METRICSINFO_H
#define MATH_METRICSINFO_H
+
#include "lyxfont.h"
-#include "math_defs.h"
+#include "LString.h"
-class BufferView;
class Painter;
-class MathNestInset;
/// Standard Math Sizes (Math mode styles)
///
MathStyles style;
///
- bool fontinset;
+ string fontname;
+ /// if this is set...
+ bool restrictwidth;
+ /// ... this is valid
+ int textwidth;
};
///
MathMetricsBase base;
///
- BufferView * view;
- /// used to pass some info down
- MathNestInset const * inset;
- ///
- int idx;
- ///
bool fullredraw;
};
struct MathPainterInfo {
///
- MathPainterInfo(Painter & p);
+ MathPainterInfo(Painter & pain);
///
void draw(int x, int y, char c);
// Generic base for temporarily changing things.
-// The original state gets restored when the Changer is destructed
+// The original state gets restored when the Changer is destructed.
+
template <class Struct, class Temp = Struct>
struct MathChanger {
///
-struct MathScriptChanger : public MathChanger<MathMetricsBase> {
- ///
- MathScriptChanger(MathMetricsBase & orig);
- ///
- ~MathScriptChanger();
-};
-
-
-struct MathFracChanger : public MathChanger<MathMetricsBase> {
- ///
- MathFracChanger(MathMetricsBase & orig);
- ///
- ~MathFracChanger();
-};
-
-
-
struct MathFontChanger : public MathChanger<LyXFont> {
///
MathFontChanger(LyXFont & orig, char const * font);
};
+struct MathScriptChanger : public MathStyleChanger {
+ ///
+ MathScriptChanger(MathMetricsBase & mb);
+};
+
+
+struct MathFracChanger : public MathStyleChanger {
+ ///
+ MathFracChanger(MathMetricsBase & mb);
+};
+
+
+struct MathArrayChanger : public MathStyleChanger {
+ ///
+ MathArrayChanger(MathMetricsBase & mb);
+};
+
+
+
struct MathShapeChanger : public MathChanger<LyXFont, LyXFont::FONT_SHAPE> {
///
MathShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape);
};
+struct MathWidthChanger : public MathChanger<MathMetricsBase>
+{
+ ///
+ MathWidthChanger(MathMetricsBase & mb, int width);
+ ///
+ ~MathWidthChanger();
+};
+
+
#endif