]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/qsetborder.C
Remove quite a few compiler warnings:
[lyx.git] / src / frontends / qt4 / qsetborder.C
1 /**
2  * \file qsetborder.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Edwin Leuven
7  * \author John Levon
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #include <config.h>
13
14 #include "qsetborder.h"
15
16 #include <QPainter>
17
18 //Added by qt3to4:
19 #include <QMouseEvent>
20 #include <QPaintEvent>
21
22
23 QSetBorder::QSetBorder(QWidget * parent, char const * name, Qt::WFlags fl)
24         : QWidget(parent, name, fl), buffer(75, 75)
25 {
26         /* length of corner line */
27         l = buffer.width() / 10;
28         /* margin */
29         m = buffer.height() / 10;
30
31         w = buffer.width();
32         h = buffer.height();
33
34         init();
35
36         setMinimumSize(w,h);
37         setMaximumSize(w,h);
38 }
39
40
41 void QSetBorder::paintEvent(QPaintEvent * e)
42 {
43         QWidget::paintEvent(e);
44         bitBlt(this, 0, 0, &buffer, 0, 0, width(), height());
45 }
46
47
48 void QSetBorder::init()
49 {
50         buffer.fill();
51         QPainter paint(&buffer);
52
53         paint.setPen(Qt::black);
54
55         // FIXME: wow, readable !! :)
56
57         paint.drawLine(m + l , m, m + l, m + l);
58         paint.drawLine(w - (m + l), m, w - (m + l), m + l);
59
60         paint.drawLine(m, m + l , m + l, m + l);
61         paint.drawLine(m, h - (m + l), m + l, h - (m + l));
62
63         paint.drawLine(m + l ,h - m, m + l ,h - (m + l));
64         paint.drawLine(w - (m + l), h - m, w - (m + l), h - (m + l));
65
66         paint.drawLine(h - m, m+l, h - (m + l), m + l);
67         paint.drawLine(h - m, h - (m + l), h - (m + l),h - (m + l));
68 }
69
70
71 void QSetBorder::mousePressEvent(QMouseEvent * e)
72 {
73         if (e->y() > e->x()) {
74                 if (e->y() < height() - e->x()) {
75                         if (left_.enabled) {
76                                 setLeft(!left_.set);
77                                 // emit signal
78                                 leftSet(left_.set);
79                         }
80                 } else {
81                         if (bottom_.enabled) {
82                                 setBottom(!bottom_.set);
83                                 // emit signal
84                                 bottomSet(bottom_.set);
85                         }
86                 }
87         } else {
88                 if (e->y() < height() - e->x()) {
89                         if (top_.enabled) {
90                                 setTop(!top_.set);
91                                 // emit signal
92                                 topSet(top_.set);
93                         }
94                 } else {
95                         if (right_.enabled) {
96                                 setRight(!right_.set);
97                                 // emit signal
98                                 rightSet(right_.set);
99                         }
100                 }
101         }
102         update();
103         // emit signal
104         clicked();
105 }
106
107
108 void QSetBorder::drawLine(QColor const & col, int x, int y, int x2, int y2)
109 {
110         QPainter paint(&buffer);
111         QPen p = paint.pen();
112         p.setWidth(2);
113         p.setColor(col);
114         paint.setPen(p);
115         paint.drawLine(x, y, x2, y2);
116 }
117
118
119 void QSetBorder::drawLeft(bool draw)
120 {
121         QColor col(draw ? Qt::black : Qt::white);
122         if (!left_.enabled)
123                 col = QColor("grey");
124         drawLine(col, m + l, m + l + 2, m + l, h - m - l - 1);
125 }
126
127
128 void QSetBorder::drawRight(bool draw)
129 {
130         QColor col(draw ? Qt::black : Qt::white);
131         if (!right_.enabled)
132                 col = QColor("grey");
133         drawLine(col, h - m - l + 1, m + l + 2, h - m - l + 1, h - m - l - 1);
134 }
135
136
137 void QSetBorder::drawTop(bool draw)
138 {
139         QColor col(draw ? Qt::black : Qt::white);
140         if (!top_.enabled)
141                 col = QColor("grey");
142         drawLine(col, m + l + 2, m + l, w - m - l - 1, m + l);
143 }
144
145
146 void QSetBorder::drawBottom(bool draw)
147 {
148         QColor col(draw ? Qt::black : Qt::white);
149         if (!bottom_.enabled)
150                 col = QColor("grey");
151         drawLine(col, m + l + 2, w - m - l + 1, w - m - l - 1, w - m - l + 1);
152 }
153
154
155 void QSetBorder::setLeftEnabled(bool border)
156 {
157         left_.enabled = border;
158         drawLeft(border);
159 }
160
161
162 void QSetBorder::setRightEnabled(bool border)
163 {
164         right_.enabled = border;
165         drawRight(border);
166 }
167
168
169 void QSetBorder::setTopEnabled(bool border)
170 {
171         top_.enabled = border;
172         drawTop(border);
173 }
174
175
176 void QSetBorder::setBottomEnabled(bool border)
177 {
178         bottom_.enabled = border;
179         drawBottom(border);
180 }
181
182
183 void QSetBorder::setLeft(bool border)
184 {
185         left_.set = border;
186         drawLeft(border);
187 }
188
189
190 void QSetBorder::setRight(bool border)
191 {
192         right_.set = border;
193         drawRight(border);
194 }
195
196
197 void QSetBorder::setTop(bool border)
198 {
199         top_.set = border;
200         drawTop(border);
201 }
202
203
204 void QSetBorder::setBottom(bool border)
205 {
206         bottom_.set = border;
207         drawBottom(border);
208 }
209
210
211 void QSetBorder::setAll(bool border)
212 {
213         setLeft(border);
214         setRight(border);
215         setTop(border);
216         setBottom(border);
217 }
218
219
220 bool QSetBorder::getLeft()
221 {
222         return left_.set;
223 }
224
225
226 bool QSetBorder::getRight()
227 {
228         return right_.set;
229 }
230
231
232 bool QSetBorder::getTop()
233 {
234         return top_.set;
235 }
236
237
238 bool QSetBorder::getBottom()
239 {
240         return bottom_.set;
241 }
242
243 #include "qsetborder_moc.cpp"