]> git.lyx.org Git - lyx.git/blob - src/mathed/math_sqrtinset.C
- remove MathStyles cache from those insets that don't need it
[lyx.git] / src / mathed / math_sqrtinset.C
1 #ifdef __GNUG__
2 #pragma implementation
3 #endif
4
5 #include "math_sqrtinset.h"
6 #include "LColor.h"
7 #include "Painter.h"
8 #include "support/LOstream.h"
9
10
11 MathSqrtInset::MathSqrtInset()
12         : MathNestInset(1)
13 {}
14
15
16 MathInset * MathSqrtInset::clone() const
17 {   
18         return new MathSqrtInset(*this);
19 }
20
21
22 void MathSqrtInset::metrics(MathMetricsInfo const & mi) const
23 {
24         xcell(0).metrics(mi);
25         ascent_  = xcell(0).ascent()  + 4;
26         descent_ = xcell(0).descent() + 2;
27         width_   = xcell(0).width()   + 12;
28 }
29
30
31 void MathSqrtInset::draw(Painter & pain, int x, int y) const
32
33         xo(x);
34         yo(y);
35         xcell(0).draw(pain, x + 10, y); 
36         int const a = ascent_;
37         int const d = descent_;
38         int xp[4];
39         int yp[4];
40         xp[0] = x + width_; yp[0] = y - a + 1;
41         xp[1] = x + 8;      yp[1] = y - a + 1;
42         xp[2] = x + 5;      yp[2] = y + d - 1;
43         xp[3] = x;          yp[3] = y + (d - a)/2;
44         pain.lines(xp, yp, 4, LColor::mathline);
45 }
46
47
48 void MathSqrtInset::write(MathWriteInfo & os) const
49 {
50         os << "\\sqrt{" << cell(0) << '}';
51 }
52
53
54 void MathSqrtInset::writeNormal(std::ostream & os) const
55 {
56         os << "[sqrt ";
57         cell(0).writeNormal(os); 
58         os << "] ";
59 }