src/LED.h

Wed, 29 Jun 2022 22:19:39 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 29 Jun 2022 22:19:39 +0200
changeset 317
f78827503fb0
parent 314
04b93b656b60
permissions
-rw-r--r--

Added DetailFermenter screen

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