4 #include "math_metricsinfo.h"
5 #include "math_support.h"
6 #include "frontends/Painter.h"
10 MathMetricsBase::MathMetricsBase()
11 : font(), style(LM_ST_TEXT), fontname("mathnormal"),
12 restrictwidth(false), textwidth(0)
17 MathMetricsInfo::MathMetricsInfo()
23 MathPainterInfo::MathPainterInfo(Painter & p)
28 void MathPainterInfo::draw(int x, int y, char c)
30 pain.text(x, y, c, base.font);
36 MathScriptChanger::MathScriptChanger(MathMetricsBase & mb)
37 : MathChanger<MathMetricsBase>(mb)
43 mb.style = LM_ST_SCRIPT;
48 mb.style = LM_ST_SCRIPTSCRIPT;
55 MathScriptChanger::~MathScriptChanger()
63 // decrease math size for fractions
64 MathFracChanger::MathFracChanger(MathMetricsBase & mb)
65 : MathChanger<MathMetricsBase>(mb)
70 mb.style = LM_ST_TEXT;
73 mb.style = LM_ST_SCRIPT;
78 mb.style = LM_ST_SCRIPTSCRIPT;
86 MathFracChanger::~MathFracChanger()
94 MathShapeChanger::MathShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape)
95 : MathChanger<LyXFont, LyXFont::FONT_SHAPE>(font)
97 save_ = orig_.shape();
98 orig_.setShape(shape);
101 MathShapeChanger::~MathShapeChanger()
103 orig_.setShape(save_);
109 void changeSize(LyXFont & font, int diff)
113 changeSize(font, diff + 1);
114 } else if (diff > 0) {
116 changeSize(font, diff - 1);
120 MathStyleChanger::MathStyleChanger(MathMetricsBase & mb, MathStyles style)
121 : MathChanger<MathMetricsBase>(mb)
124 changeSize(mb.font, mb.style - style);
128 MathStyleChanger::~MathStyleChanger()
136 MathFontSetChanger::MathFontSetChanger(MathMetricsBase & mb, char const * name)
137 : MathChanger<MathMetricsBase>(mb)
141 augmentFont(mb.font, name);
144 MathFontSetChanger::~MathFontSetChanger()
150 MathWidthChanger::MathWidthChanger(MathMetricsBase & mb, int w)
151 : MathChanger<MathMetricsBase>(mb)
154 mb.restrictwidth = true;
159 MathWidthChanger::~MathWidthChanger()