1 #include "ledwidget.h"
2 
3 #include <QtGui/QPainter>
4 
5 
6 namespace QSint
7 {
8 
9 
LedWidget(QWidget * parent)10 LedWidget::LedWidget(QWidget *parent) :
11     QWidget(parent)
12 {
13     setColor(Qt::gray);
14 }
15 
16 
setColor(const QColor & ledColor)17 void LedWidget::setColor(const QColor &ledColor)
18 {
19     m_gradient.setColorAt(0.0, Qt::white);
20     m_gradient.setColorAt(1.0, ledColor);
21 }
22 
23 
setColors(const QColor & ledColor,const QColor & highlightColor)24 void LedWidget::setColors(const QColor &ledColor, const QColor &highlightColor)
25 {
26     m_gradient.setColorAt(0.0, highlightColor);
27     m_gradient.setColorAt(1.0, ledColor);
28 }
29 
30 
paintEvent(QPaintEvent *)31 void LedWidget::paintEvent(QPaintEvent * /*event*/)
32 {
33     QPainter p(this);
34 
35     p.setPen(QPen(Qt::black));
36     p.setRenderHint(QPainter::Antialiasing);
37 
38     int radius = qMin(rect().width(), rect().height()) / 2 - 2;
39 
40     m_gradient.setCenter(rect().center());
41     m_gradient.setFocalPoint(rect().center() - QPoint(radius / 2, radius / 2));
42     m_gradient.setRadius(radius);
43 
44     p.setBrush(m_gradient);
45 
46     p.drawEllipse(rect().center(), radius, radius);
47 }
48 
49 
50 }
51 
52