|
wiRedPanda
Logic Circuit Simulator
|
Graphical representation of a NOR gate (2–8 inputs, 1 output). More...
#include <Nor.h>
Public Member Functions | |
| Nor (QGraphicsItem *parent=nullptr) | |
| Constructs a Nor gate element with default 2 inputs. | |
| void | updateLogic () override |
| Sets output to the logical NOR of all inputs. | |
| Public Member Functions inherited from GraphicElement | |
| QVector< Port * > | allPorts () const |
| Returns a combined list of all input and output ports as Port pointers. | |
| QPixmap | appearancePreviewPixmap (const int index, const QSize &size) const |
| Returns a small preview pixmap for the appearance at index (see appearanceStates()). | |
| virtual QList< std::pair< int, QString > > | appearanceStates () const |
| Returns the list of editable appearance states for this element. Each pair is (appearance list index, human-readable state description). Override in subclasses with multi-state appearances (e.g., Led). | |
| virtual QString | audio () const |
| Returns the name of the audio file currently associated with this element. | |
| void | beginDeferredCommit () |
| virtual const QString & | blobName () const |
| Returns the blob name for embedded ICs, empty string otherwise. Base returns empty. | |
| QRectF | boundingRect () const override |
| Returns the bounding rectangle of this element in local coordinates. | |
| bool | canChangeAppearance () const |
Returns true if the user is allowed to choose a custom appearance for this element. | |
| void | clearOutputChanged () |
| Clears the simulation output-changed flag. | |
| virtual QString | color () const |
| Returns the name of the color currently applied to this element. | |
| void | commitDeferredOutputs () |
| void | connectPredecessor (const int inputIndex, GraphicElement *source, const int outputPort) |
| Connects simulation input inputIndex to output outputPort of source element. | |
| virtual double | delay () const |
| Returns the clock phase delay in seconds (overridden by Clock; returns 0 for other elements). | |
| QList< PropertyDescriptor > | editableProperties () const |
| Returns the list of editable properties this element exposes in the ElementEditor. | |
| ElementGroup | elementGroup () const |
| Returns the group this element belongs to. | |
| ElementType | elementType () const |
| Returns the type identifier for this element. | |
| virtual QStringList | externalFiles () const |
| virtual double | frequency () const |
| Returns the clock frequency in Hz (overridden by Clock; returns 0 for other elements). | |
| virtual QString | genericProperties () |
| Returns a string encoding element-specific properties for serialization or display. | |
| GraphicElement (ElementType type, QGraphicsItem *parent=nullptr) | |
| Constructs a graphic element of the given type, fetching all properties from the metadata registry. | |
| bool | hasAudio () const |
Returns true if this element type supports audio output. | |
| bool | hasAudioBox () const |
Returns true if this element type shows an audio selection box. | |
| bool | hasColors () const |
Returns true if this element type supports color selection. | |
| bool | hasDelay () const |
Returns true if this element type exposes a configurable clock phase delay. | |
| bool | hasFrequency () const |
Returns true if this element type exposes a configurable clock frequency. | |
| bool | hasLabel () const |
Returns true if this element type supports a user-editable label. | |
| bool | hasTrigger () const |
Returns true if this element type supports a keyboard trigger. | |
| bool | hasTruthTable () const |
Returns true if this element type has an editable truth table. | |
| bool | hasVolume () const |
Returns true if this element type supports volume control. | |
| virtual bool | hasWirelessMode () const |
| Returns true if this element supports a configurable wireless routing mode. | |
| void | initSimulationVectors (const int inputCount, const int outputCount) |
| Allocates simulation I/O vectors with inputs inputs and outputs outputs. | |
| void | inlineEditRequested (GraphicElement *element) |
| InputPort * | inputPort (const int index=0) const |
| Returns the input port at index (default 0). | |
| const QVector< InputPort * > & | inputs () const |
| Returns a const reference to the vector of all input ports. | |
| int | inputSize () const |
| Returns the current number of input ports. | |
| virtual bool | isEmbedded () const |
| Returns true if this element is an embedded IC (not file-backed). Base returns false. | |
| bool | isFlippedX () const |
Returns true if this element is mirrored along the X axis (horizontal flip). | |
| bool | isFlippedY () const |
Returns true if this element is mirrored along the Y axis (vertical flip). | |
| bool | isValid () |
Returns true if the element is fully initialised and connected correctly. | |
| QString | label () const |
| Returns the user-visible label text for this element. | |
| QRectF | labelSceneBoundingRect () const |
| virtual void | load (QDataStream &stream, SerializationContext &context) |
| Loads the graphic element through a binary data stream. | |
| virtual void | loadFromDrop (const QString &fileName, const QString &contextDir) |
| Polymorphic interface for drag-drop initialization (replaces elementType() == IC checks). | |
| int | maxInputSize () const |
| Returns the maximum allowed number of input ports. | |
| int | maxOutputSize () const |
| Returns the maximum allowed number of output ports. | |
| int | minInputSize () const |
| Returns the minimum allowed number of input ports. | |
| int | minOutputSize () const |
| Returns the minimum allowed number of output ports. | |
| QString | nextColor () const |
| Returns the name of the next color in the element's color list. | |
| bool | outputChanged () const |
| OutputPort * | outputPort (const int index=0) const |
| Returns the output port at index (default 0). | |
| const QVector< OutputPort * > & | outputs () const |
| Returns a const reference to the vector of all output ports. | |
| int | outputSize () const |
| Returns the current number of output ports. | |
| Status | outputValue (const int index=0) const |
| Returns the four-state signal value on simulation output port index. | |
| void | paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override |
| Paints the element onto the scene. | |
| QPointF | pixmapCenter () const |
| Returns the centre point of the element's pixmap in local coordinates. | |
| QString | previousColor () const |
| Returns the name of the previous color in the element's color list. | |
| void | reapplyAppearanceOrientation () |
| virtual void | refresh () |
| Forces a visual refresh of the element's pixmap and ports. | |
| virtual void | resetSimState () |
| Resets all simulation-visible state to power-on defaults. | |
| virtual void | resettleCombinational () |
| Re-evaluates combinational outputs after the synchronous sequential commit, propagating just-committed flip-flop/latch state to downstream logic and IC output boundaries within the same tick. | |
| void | retranslate () |
| Updates the translated display name, tooltip, and port object name after a locale change. | |
| void | rotatePorts () |
| bool | rotatesGraphic () const |
| qreal | rotation () const |
| Returns the current rotation angle of this element in degrees. | |
| virtual void | save (QDataStream &stream, SerializationOptions options) const |
| virtual void | setAppearance (const bool defaultAppearance, const QString &fileName) |
| Switches the element's appearance. | |
| void | setAppearanceAt (const int index, const QString &fileName) |
| Sets a custom appearance at a specific index in the appearance list. | |
| virtual void | setAudio (const QString &audio) |
| Sets the audio file associated with this element to audio. | |
| virtual void | setColor (const QString &color) |
| Sets the element color to color and refreshes the pixmap. | |
| virtual void | setDelay (const double delay) |
| Sets the clock phase delay to delay (overridden by clock elements). | |
| void | setFlippedX (bool flipped) |
| Sets the horizontal mirror state and updates the item transform. | |
| void | setFlippedY (bool flipped) |
| Sets the vertical mirror state and updates the item transform. | |
| virtual void | setFrequency (const double freq) |
| Sets the clock frequency to freq (overridden by clock elements). | |
| void | setInputs (const QVector< InputPort * > &inputs) |
| Replaces the input port vector with inputs. | |
| virtual void | setInputSize (const int size) |
| Adjusts the number of input ports to size, adding or removing ports as needed. | |
| void | setLabel (const QString &label) |
| Sets the label text to label and refreshes the display. | |
| virtual void | setOutputSize (const int size) |
| Adjusts the number of output ports to size, adding or removing ports as needed. | |
| void | setOutputValue (const bool value) |
Convenience overload — converts bool to Active/Inactive for port 0. | |
| void | setOutputValue (const int index, const bool value) |
Convenience overload — converts bool to Active/Inactive for port index. | |
| void | setOutputValue (const int index, const Status value) |
| Sets simulation output port index to value. | |
| void | setOutputValue (const Status value) |
| Sets simulation output port 0 to value. | |
| void | setPixmap (const int index) |
| Loads and applies the appearance at position index in the appearance list. | |
| void | setPixmap (const QString &pixmapPath) |
| Loads and applies the pixmap located at pixmapPath. | |
| void | setPortName (const QString &name) |
| Sets the object name of all ports to name for identification. | |
| void | setRotation (const qreal angle) |
| Rotates the element to angle degrees and updates port positions. | |
| void | setTrigger (const QKeySequence &trigger) |
| Sets the keyboard shortcut to trigger and updates the label. | |
| virtual void | setVolume (float vol) |
| Sets the audio playback volume to vol (0.0–1.0). | |
| const QVector< Status > & | simInputs () const |
| Read-only view of the cached simulation input values. | |
| const QVector< Status > & | simOutputs () const |
| Read-only view of the current simulation output values. | |
| qsizetype | simOutputSize () const |
| Returns the number of simulation output slots. | |
| QKeySequence | trigger () const |
| Returns the keyboard shortcut that activates this element. | |
| int | type () const override |
| Returns the custom type identifier for this item. | |
| void | updateLabel () |
| Repositions and updates the label child item to reflect current state. | |
| virtual void | updatePortsProperties () |
| Repositions and reconfigures all ports after the port count changes. | |
| virtual void | updateTheme () |
| Updates the element's visual theme according to the current dark/light palette. | |
| virtual float | volume () const |
| Returns the audio playback volume (0.0–1.0). | |
| virtual WirelessMode | wirelessMode () const |
| Returns the wireless routing mode for this element. | |
| ~GraphicElement () override | |
| Out-of-line so the unique_ptr to the forward-declared QSvgRenderer can be destroyed. | |
| Public Member Functions inherited from ItemWithId | |
| int | id () const |
| Returns the unique integer identifier of this item, or -1 if unassigned. | |
| ItemWithId ()=default | |
| Constructs a new ItemWithId with an unassigned ID of -1. | |
| void | setId (const int id) |
| Sets the identifier to id. | |
| virtual | ~ItemWithId () |
| Self-unregisters from the current SceneItemRegistry, if any. | |
Additional Inherited Members | |
| Public Types inherited from GraphicElement | |
| enum | { Type = QGraphicsItem::UserType + 3 } |
| Static Public Member Functions inherited from GraphicElement | |
| static int | colorNameToIndex (const QString &color) |
| Maps a color name ("White","Red","Green","Blue","Purple") to indices 0–4. | |
| Protected Member Functions inherited from GraphicElement | |
| int | decodeSelectValue (int offset, int count) const |
| Decodes count select-line statuses from simInputs() into a binary index. | |
| QVariant | itemChange (GraphicsItemChange change, const QVariant &value) override |
| Handles item state changes such as position, rotation, and selection. | |
| virtual void | labelContentChanged () |
| void | mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event) override |
| Requests inline label editing on double-click. | |
| QPixmap | pixmap () const |
| Returns the pixmap currently displayed by this element. | |
| QRectF | portsBoundingRect () const |
| Returns the bounding rectangle that encompasses all child ports. | |
| QRectF | renderBodyBounds () const |
| Footprint of a "procedural render body" (IC/Mux/Demux/TruthTable): the nominal 64x64 body unioned with wherever the ports actually land, which extends past it once an instance has enough ports. | |
| bool | sceneEvent (QEvent *event) override |
| Intercepts mouse-press and mouse-release events to handle Ctrl+click. | |
| void | setHasColors (const bool hasColors) |
| Sets whether this element type supports color selection. | |
| void | setLabelAnchor (const QPointF &pos) |
| void | setMaxInputSize (const int maxInputSize) |
| Sets the maximum number of input ports to maxInputSize. | |
| void | setMaxOutputSize (const int maxOutputSize) |
| Sets the maximum number of output ports to maxOutputSize. | |
| void | setMinInputSize (const int minInputSize) |
| Sets the minimum number of input ports to minInputSize. | |
| void | setMinOutputSize (const int minOutputSize) |
| Sets the minimum number of output ports to minOutputSize. | |
| bool | simUpdateInputs () |
| Snapshots each predecessor's output into the simulation input cache. | |
| bool | simUpdateInputsAllowUnknown () |
| Like simUpdateInputs(), but allows Unknown/Error values through. | |
| Protected Attributes inherited from GraphicElement | |
| ElementAppearance | m_appearance {this} |
| QGraphicsSimpleTextItem * | m_label = new QGraphicsSimpleTextItem(this) |
| Child text item that displays the label and optional trigger shortcut. | |
| QPointF | m_labelAnchor |
| The label's intended anchor point in the element's un-rotated local frame; see setLabelAnchor(). | |
| ElementPorts | m_ports {this} |
| QString | m_titleText |
| Translated title text shown in UI panels (from metadata). | |
| QString | m_translatedName |
| Translated element name used as tooltip and port object name. | |
|
explicit |
|
overridevirtual |
Sets output to the logical NOR of all inputs.
Reimplemented from GraphicElement.
Definition at line 48 of file Nor.cpp.
References GraphicElement::setOutputValue(), GraphicElement::simInputs(), GraphicElement::simUpdateInputsAllowUnknown(), StatusOps::statusNot(), and StatusOps::statusOrAll().