#ifndef MATH_SUPPORT_H
#define MATH_SUPPORT_H
-#include "lyxfont.h"
-
-#ifndef byte
-#define byte unsigned char
-#endif
+#include "math_defs.h"
+#include "LString.h"
class Painter;
+class latexkeys;
+class MathMetricsInfo;
-struct math_deco_struct {
- int code;
- float * data;
- int angle;
-};
-
-extern char const * math_font_name[];
extern char const * latex_mathspace[];
-extern int mathed_char_height(short type, int size, byte c,
- int & asc, int & des);
-extern int mathed_char_width(short type, int size, byte c);
-extern void mathed_draw_deco(Painter & pain, int x, int y,
- int w, int h, int code);
-
-extern LyXFont mathed_get_font(short type, int size);
-extern int mathed_string_height(short type, int size, string const & s,
- int & asc, int & des);
-extern int mathed_string_width(short type, int size, string const & s);
-extern math_deco_struct const * search_deco(int code);
+int mathed_char_height(MathTextCodes type, MathMetricsInfo const & size,
+ unsigned char c, int & asc, int & des);
+void mathed_char_dim(MathTextCodes type, MathMetricsInfo const & size,
+ unsigned char c, int & asc, int & des, int & wid);
+int mathed_char_width(MathTextCodes type, MathMetricsInfo const & size,
+ unsigned char c);
+int mathed_char_ascent(MathTextCodes type, MathMetricsInfo const & size,
+ unsigned char c);
+int mathed_char_descent(MathTextCodes type, MathMetricsInfo const & size,
+ unsigned char c);
+
+void mathed_draw_deco(Painter & pain, int x, int y, int w, int h,
+ string const & name);
+
+void mathed_string_dim(MathTextCodes type, MathMetricsInfo const & size,
+ string const & s, int & asc, int & des, int & wid);
+int mathed_string_height(MathTextCodes type, MathMetricsInfo const & size,
+ string const & s, int & asc, int & des);
+
+int mathed_string_width(MathTextCodes type, MathMetricsInfo const & size,
+ string const & s);
+int mathed_string_ascent(MathTextCodes type, MathMetricsInfo const & size,
+ string const & s);
+int mathed_string_descent(MathTextCodes type, MathMetricsInfo const & size,
+ string const & s);
+
+void drawStr(Painter & pain, MathTextCodes type, MathMetricsInfo const & siz,
+ int x, int y, string const & s);
+void drawChar(Painter & pain, MathTextCodes type, MathMetricsInfo const & siz,
+ int x, int y, char c);
+
+void math_font_max_dim(MathTextCodes code, MathMetricsInfo const & siz,
+ int & asc, int & desc);
+
+bool math_font_available(MathTextCodes code);
+
+// decrease math size for super- and subscripts
+void smallerStyleScript(MathMetricsInfo &);
+
+// decrease math size for fractions
+void smallerStyleFrac(MathMetricsInfo & st);
+
+char const * math_font_name(MathTextCodes type);
+
+
#endif