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)
18 MathMetricsInfo::MathMetricsInfo()
19 : view(0), fullredraw(false)
25 MathPainterInfo::MathPainterInfo(Painter & p)
30 void MathPainterInfo::draw(int x, int y, char c)
32 pain.text(x, y, c, base.font);
38 MathScriptChanger::MathScriptChanger(MathMetricsBase & mb)
39 : MathChanger<MathMetricsBase>(mb)
45 mb.style = LM_ST_SCRIPT;
50 mb.style = LM_ST_SCRIPTSCRIPT;
57 MathScriptChanger::~MathScriptChanger()
65 // decrease math size for fractions
66 MathFracChanger::MathFracChanger(MathMetricsBase & mb)
67 : MathChanger<MathMetricsBase>(mb)
72 mb.style = LM_ST_TEXT;
75 mb.style = LM_ST_SCRIPT;
80 mb.style = LM_ST_SCRIPTSCRIPT;
88 MathFracChanger::~MathFracChanger()
96 MathShapeChanger::MathShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape)
97 : MathChanger<LyXFont, LyXFont::FONT_SHAPE>(font)
99 save_ = orig_.shape();
100 orig_.setShape(shape);
103 MathShapeChanger::~MathShapeChanger()
105 orig_.setShape(save_);
111 void changeSize(LyXFont & font, int diff)
115 changeSize(font, diff + 1);
116 } else if (diff > 0) {
118 changeSize(font, diff - 1);
122 MathStyleChanger::MathStyleChanger(MathMetricsBase & mb, MathStyles style)
123 : MathChanger<MathMetricsBase>(mb)
126 changeSize(mb.font, mb.style - style);
130 MathStyleChanger::~MathStyleChanger()
138 MathFontSetChanger::MathFontSetChanger(MathMetricsBase & mb, char const * name)
139 : MathChanger<MathMetricsBase>(mb)
143 augmentFont(mb.font, name);
146 MathFontSetChanger::~MathFontSetChanger()
152 MathWidthChanger::MathWidthChanger(MathMetricsBase & mb, int w)
153 : MathChanger<MathMetricsBase>(mb)
156 mb.restrictwidth = true;
161 MathWidthChanger::~MathWidthChanger()