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.
14 #include "qsetborder.h"
19 #include <QMouseEvent>
20 #include <QPaintEvent>
23 QSetBorder::QSetBorder(QWidget * parent, char const * name, Qt::WFlags fl)
24 : QWidget(parent, name, fl), buffer(75, 75)
26 /* length of corner line */
27 l = buffer.width() / 10;
29 m = buffer.height() / 10;
41 void QSetBorder::paintEvent(QPaintEvent * e)
43 QWidget::paintEvent(e);
44 bitBlt(this, 0, 0, &buffer, 0, 0, width(), height());
48 void QSetBorder::init()
51 QPainter paint(&buffer);
53 paint.setPen(Qt::black);
55 // FIXME: wow, readable !! :)
57 paint.drawLine(m + l , m, m + l, m + l);
58 paint.drawLine(w - (m + l), m, w - (m + l), m + l);
60 paint.drawLine(m, m + l , m + l, m + l);
61 paint.drawLine(m, h - (m + l), m + l, h - (m + l));
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));
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));
71 void QSetBorder::mousePressEvent(QMouseEvent * e)
73 if (e->y() > e->x()) {
74 if (e->y() < height() - e->x()) {
81 if (bottom_.enabled) {
82 setBottom(!bottom_.set);
84 bottomSet(bottom_.set);
88 if (e->y() < height() - e->x()) {
96 setRight(!right_.set);
108 void QSetBorder::drawLine(QColor const & col, int x, int y, int x2, int y2)
110 QPainter paint(&buffer);
111 QPen p = paint.pen();
115 paint.drawLine(x, y, x2, y2);
119 void QSetBorder::drawLeft(bool draw)
121 QColor col(draw ? Qt::black : Qt::white);
123 col = QColor("grey");
124 drawLine(col, m + l, m + l + 2, m + l, h - m - l - 1);
128 void QSetBorder::drawRight(bool draw)
130 QColor col(draw ? Qt::black : Qt::white);
132 col = QColor("grey");
133 drawLine(col, h - m - l + 1, m + l + 2, h - m - l + 1, h - m - l - 1);
137 void QSetBorder::drawTop(bool draw)
139 QColor col(draw ? Qt::black : Qt::white);
141 col = QColor("grey");
142 drawLine(col, m + l + 2, m + l, w - m - l - 1, m + l);
146 void QSetBorder::drawBottom(bool draw)
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);
155 void QSetBorder::setLeftEnabled(bool border)
157 left_.enabled = border;
162 void QSetBorder::setRightEnabled(bool border)
164 right_.enabled = border;
169 void QSetBorder::setTopEnabled(bool border)
171 top_.enabled = border;
176 void QSetBorder::setBottomEnabled(bool border)
178 bottom_.enabled = border;
183 void QSetBorder::setLeft(bool border)
190 void QSetBorder::setRight(bool border)
197 void QSetBorder::setTop(bool border)
204 void QSetBorder::setBottom(bool border)
206 bottom_.set = border;
211 void QSetBorder::setAll(bool border)
220 bool QSetBorder::getLeft()
226 bool QSetBorder::getRight()
232 bool QSetBorder::getTop()
238 bool QSetBorder::getBottom()
243 #include "qsetborder_moc.cpp"