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")
17 MathMetricsInfo::MathMetricsInfo()
18 : view(0), inset(0), idx(0), fullredraw(false)
24 MathPainterInfo::MathPainterInfo(Painter & p)
29 void MathPainterInfo::draw(int x, int y, char c)
31 pain.text(x, y, c, base.font);
37 MathScriptChanger::MathScriptChanger(MathMetricsBase & mb)
38 : MathChanger<MathMetricsBase>(mb)
44 mb.style = LM_ST_SCRIPT;
49 mb.style = LM_ST_SCRIPTSCRIPT;
56 MathScriptChanger::~MathScriptChanger()
64 // decrease math size for fractions
65 MathFracChanger::MathFracChanger(MathMetricsBase & mb)
66 : MathChanger<MathMetricsBase>(mb)
71 mb.style = LM_ST_TEXT;
74 mb.style = LM_ST_SCRIPT;
79 mb.style = LM_ST_SCRIPTSCRIPT;
87 MathFracChanger::~MathFracChanger()
95 MathShapeChanger::MathShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape)
96 : MathChanger<LyXFont, LyXFont::FONT_SHAPE>(font)
98 save_ = orig_.shape();
99 orig_.setShape(shape);
102 MathShapeChanger::~MathShapeChanger()
104 orig_.setShape(save_);
110 void changeSize(LyXFont & font, int diff)
114 changeSize(font, diff + 1);
115 } else if (diff > 0) {
117 changeSize(font, diff - 1);
121 MathStyleChanger::MathStyleChanger(MathMetricsBase & mb, MathStyles style)
122 : MathChanger<MathMetricsBase>(mb)
125 changeSize(mb.font, mb.style - style);
129 MathStyleChanger::~MathStyleChanger()
137 MathFontSetChanger::MathFontSetChanger(MathMetricsBase & mb, char const * name)
138 : MathChanger<MathMetricsBase>(mb)
142 augmentFont(mb.font, name);
145 MathFontSetChanger::~MathFontSetChanger()