wiRedPanda
Logic Circuit Simulator
Loading...
Searching...
No Matches
Led.h
Go to the documentation of this file.
1// Copyright 2015 - 2026, GIBIS-UNIFESP and the wiRedPanda contributors
2// SPDX-License-Identifier: GPL-3.0-or-later
3
7
8#pragma once
9
11
19class Led : public GraphicElement
20{
21 Q_OBJECT
22
23public:
26 static constexpr const char *kDefaultColor = "White";
27
28 // --- Lifecycle ---
29
31 explicit Led(QGraphicsItem *parent = nullptr);
32
33 // --- Color State ---
34
36 QString color() const override;
37
39 QString genericProperties() override;
41 void setColor(const QString &color) override;
42
43 // --- Visual ---
44
46 void refresh() override;
48 void setAppearance(const bool useDefaultAppearance, const QString &fileName) override;
50 QList<std::pair<int, QString>> appearanceStates() const override;
51
53 void updateLogic() override;
54
56 void updatePortsProperties() override;
57
58 // --- Serialization ---
59
61 void load(QDataStream &stream, SerializationContext &context) override;
63 void save(QDataStream &stream, SerializationOptions options) const override;
64
65private:
66 // --- Internal methods ---
67
68 int colorIndex();
69
70 // --- Members ---
71
72 QString m_color = kDefaultColor;
73 int m_colorIndex = 0; /* white = 0, red = 2, green = 4, blue = 6, purple = 8 */
74};
Abstract base class for all graphical circuit elements.
GraphicElement(ElementType type, QGraphicsItem *parent=nullptr)
Constructs a graphic element of the given type, fetching all properties from the metadata registry.
Led(QGraphicsItem *parent=nullptr)
Constructs the element with optional parent.
Definition Led.cpp:77
QString color() const override
Returns the current LED color name.
Definition Led.cpp:165
void updateLogic() override
Propagates input values to matching outputs.
Definition Led.cpp:287
QList< std::pair< int, QString > > appearanceStates() const override
Definition Led.cpp:240
void setColor(const QString &color) override
Sets the LED color to color.
Definition Led.cpp:156
void load(QDataStream &stream, SerializationContext &context) override
Definition Led.cpp:184
void updatePortsProperties() override
Updates port positions when input count changes.
Definition Led.cpp:209
void save(QDataStream &stream, SerializationOptions options) const override
Definition Led.cpp:170
QString genericProperties() override
Returns a string describing the current color for the element editor.
Definition Led.cpp:204
void setAppearance(const bool useDefaultAppearance, const QString &fileName) override
Definition Led.cpp:224
void refresh() override
Refreshes the visual appearance based on current state.
Definition Led.cpp:151
static constexpr const char * kDefaultColor
Definition Led.h:26
Bundles all per-deserialization state so that load() overrides receive it through one explicit parame...
Options passed to GraphicElement::save() (and friends); the save-side counterpart of SerializationCon...