src/LED.h

Wed, 29 Jun 2022 21:28:13 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 29 Jun 2022 21:28:13 +0200
changeset 316
dcd472be9ae8
parent 314
04b93b656b60
permissions
-rw-r--r--

Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.

314
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 #ifndef _LED_H_
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 #define _LED_H_
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 #include <QtDesigner/QtDesigner>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 #include <QWidget>
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 class QTimer;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 class QDESIGNER_WIDGET_EXPORT LED : public QWidget
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 {
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 Q_OBJECT
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 Q_PROPERTY(double diameter READ diameter WRITE setDiameter) // mm
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 Q_PROPERTY(QColor color READ color WRITE setColor)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 Q_PROPERTY(bool state READ state WRITE setState)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 Q_PROPERTY(bool flashing READ isFlashing WRITE setFlashing)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 Q_PROPERTY(int flashRate READ flashRate WRITE setFlashRate)
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 public:
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 explicit LED(QWidget* parent=0);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 ~LED();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 double diameter() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 void setDiameter(double diameter);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 QColor color() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 void setColor(const QColor& color);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 Qt::Alignment alignment() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 void setAlignment(Qt::Alignment alignment);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33 bool state() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 bool isFlashing() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 int flashRate() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 public slots:
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 void setState(bool state);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 void toggleState();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 void setFlashing(bool flashing);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 void setFlashRate(int rate);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 void startFlashing();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 void stopFlashing();
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 public:
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 int heightForWidth(int width) const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 QSize sizeHint() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 QSize minimumSizeHint() const;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 protected:
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 void paintEvent(QPaintEvent* event);
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 private:
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 double diameter_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 QColor color_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 Qt::Alignment alignment_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 bool initialState_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 bool state_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 int flashRate_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 bool flashing_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 //
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 // Pixels per mm for x and y...
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 //
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 int pixX_, pixY_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 //
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 // Scaled values for x and y diameter.
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 //
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 int diamX_, diamY_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 QRadialGradient gradient_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 QTimer* timer_;
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 };
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77
04b93b656b60 Added LED plugin.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 #endif

mercurial