3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS
15 #include "qsetborder.h"
18 QSetBorder::QSetBorder(QWidget * parent, char const * name, WFlags fl)
19 : QWidget(parent, name, fl), buffer(75, 75)
21 /* length of corner line */
22 l = buffer.width() / 10;
24 m = buffer.height() / 10;
36 void QSetBorder::paintEvent(QPaintEvent * e)
38 QWidget::paintEvent(e);
39 bitBlt(this, 0, 0, &buffer, 0, 0, width(), height());
43 void QSetBorder::init()
48 paint.setPen(Qt::black);
50 // FIXME: wow, readable !! :)
52 paint.drawLine(m + l , m, m + l, m + l);
53 paint.drawLine(w - (m + l), m, w - (m + l), m + l);
55 paint.drawLine(m, m + l , m + l, m + l);
56 paint.drawLine(m, h - (m + l), m + l, h - (m + l));
58 paint.drawLine(m + l ,h - m, m + l ,h - (m + l));
59 paint.drawLine(w - (m + l), h - m, w - (m + l), h - (m + l));
61 paint.drawLine(h - m, m+l, h - (m + l), m + l);
62 paint.drawLine(h - m, h - (m + l), h - (m + l),h - (m + l));
68 void QSetBorder::mousePressEvent(QMouseEvent * e)
70 if (e->y() > e->x()) {
71 if (e->y() < height() - e->x()) {
74 emit leftSet(left_.set);
77 if (bottom_.enabled) {
78 setBottom(!bottom_.set);
79 emit bottomSet(bottom_.set);
83 if (e->y() < height() - e->x()) {
86 emit topSet(top_.set);
90 setRight(!right_.set);
91 emit rightSet(right_.set);
100 void QSetBorder::drawLine(QColor const & col, int x, int y, int x2, int y2)
103 paint.begin(&buffer);
104 QPen p = paint.pen();
108 paint.drawLine(x, y, x2, y2);
113 void QSetBorder::drawLeft(bool draw)
115 QColor col(draw ? Qt::black : Qt::white);
117 col = QColor("grey");
118 drawLine(col, m + l, m + l + 2, m + l, h - m - l - 1);
122 void QSetBorder::drawRight(bool draw)
124 QColor col(draw ? Qt::black : Qt::white);
126 col = QColor("grey");
127 drawLine(col, h - m - l + 1, m + l + 2, h - m - l + 1, h - m - l - 1);
131 void QSetBorder::drawTop(bool draw)
133 QColor col(draw ? Qt::black : Qt::white);
135 col = QColor("grey");
136 drawLine(col, m + l + 2, m + l, w - m - l - 1, m + l);
140 void QSetBorder::drawBottom(bool draw)
142 QColor col(draw ? Qt::black : Qt::white);
143 if (!bottom_.enabled)
144 col = QColor("grey");
145 drawLine(col, m + l + 2, w - m - l + 1, w - m - l - 1, w - m - l + 1);
149 void QSetBorder::setLeftEnabled(bool border)
151 left_.enabled = border;
156 void QSetBorder::setRightEnabled(bool border)
158 right_.enabled = border;
163 void QSetBorder::setTopEnabled(bool border)
165 top_.enabled = border;
170 void QSetBorder::setBottomEnabled(bool border)
172 bottom_.enabled = border;
177 void QSetBorder::setLeft(bool border)
184 void QSetBorder::setRight(bool border)
191 void QSetBorder::setTop(bool border)
198 void QSetBorder::setBottom(bool border)
200 bottom_.set = border;
205 void QSetBorder::setAll(bool border)
214 bool QSetBorder::getLeft()
220 bool QSetBorder::getRight()
226 bool QSetBorder::getTop()
232 bool QSetBorder::getBottom()