]> git.lyx.org Git - lyx.git/blob - src/mathed/math_metricsinfo.C
remove unneeded member
[lyx.git] / src / mathed / math_metricsinfo.C
1
2 #include <config.h>
3
4 #include "math_metricsinfo.h"
5 #include "math_support.h"
6 #include "debug.h"
7 #include "frontends/Painter.h"
8
9
10
11 MathMetricsBase::MathMetricsBase()
12         : font(), style(LM_ST_TEXT), fontname("mathnormal"),
13           restrictwidth(false), textwidth(0)
14 {}
15
16
17
18
19 MathMetricsInfo::MathMetricsInfo()
20         : view(0), fullredraw(false)
21 {}
22
23
24
25
26 MathPainterInfo::MathPainterInfo(Painter & p)
27         : pain(p)
28 {}
29
30
31 void MathPainterInfo::draw(int x, int y, char c)
32 {
33         pain.text(x, y, c, base.font);
34 }
35
36
37
38
39 MathScriptChanger::MathScriptChanger(MathMetricsBase & mb)
40         : MathChanger<MathMetricsBase>(mb)
41 {
42         save_ = mb;
43         switch (mb.style) {
44                 case LM_ST_DISPLAY:
45                 case LM_ST_TEXT:
46                         mb.style = LM_ST_SCRIPT;
47                         mb.font.decSize();
48                         mb.font.decSize();
49                         break;
50                 case LM_ST_SCRIPT:
51                         mb.style = LM_ST_SCRIPTSCRIPT;
52                         mb.font.decSize();
53                 default:
54                         break;
55         }
56 }
57
58 MathScriptChanger::~MathScriptChanger()
59 {
60         orig_ = save_;
61 }
62
63
64
65
66 // decrease math size for fractions
67 MathFracChanger::MathFracChanger(MathMetricsBase & mb)
68         : MathChanger<MathMetricsBase>(mb)
69 {
70         save_ = mb;
71         switch (mb.style) {
72                 case LM_ST_DISPLAY:
73                         mb.style = LM_ST_TEXT;
74                         break;
75                 case LM_ST_TEXT:
76                         mb.style = LM_ST_SCRIPT;
77                         mb.font.decSize();
78                         mb.font.decSize();
79                         break;
80                 case LM_ST_SCRIPT:
81                         mb.style = LM_ST_SCRIPTSCRIPT;
82                         mb.font.decSize();
83                         break;
84                 default:
85                         break;
86         }
87 }
88
89 MathFracChanger::~MathFracChanger()
90 {
91         orig_ = save_;
92 }
93
94
95
96
97 MathShapeChanger::MathShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape)
98         : MathChanger<LyXFont, LyXFont::FONT_SHAPE>(font)
99 {
100         save_ = orig_.shape();
101         orig_.setShape(shape);
102 }
103
104 MathShapeChanger::~MathShapeChanger()
105 {
106         orig_.setShape(save_);
107 }
108
109
110
111
112 void changeSize(LyXFont & font, int diff)
113 {
114         if (diff < 0) {
115                 font.decSize();
116                 changeSize(font, diff + 1);
117         } else if (diff > 0) {
118                 font.incSize();
119                 changeSize(font, diff - 1);
120         }
121 }
122
123 MathStyleChanger::MathStyleChanger(MathMetricsBase & mb, MathStyles style)
124         :       MathChanger<MathMetricsBase>(mb)
125 {
126         save_ = mb;
127         changeSize(mb.font, mb.style - style);
128 }
129
130
131 MathStyleChanger::~MathStyleChanger()
132 {
133         orig_ = save_;
134 }
135
136
137
138
139 MathFontSetChanger::MathFontSetChanger(MathMetricsBase & mb, char const * name)
140         :       MathChanger<MathMetricsBase>(mb)
141 {
142         save_ = mb;     
143         mb.fontname = name;
144         augmentFont(mb.font, name);
145 }
146
147 MathFontSetChanger::~MathFontSetChanger()
148 {
149         orig_ = save_;
150 }
151
152
153 MathWidthChanger::MathWidthChanger(MathMetricsBase & mb, int w)
154         :       MathChanger<MathMetricsBase>(mb)
155 {
156         save_ = mb;     
157         mb.restrictwidth = true;
158         mb.textwidth     = w;
159 }
160
161
162 MathWidthChanger::~MathWidthChanger()
163 {
164         orig_ = save_;
165 }
166