|
Electrosim
1.00
|
00001 /*********************************************************************** 00002 * Module: item.h 00003 * Author: SALMON PAUL 00004 * MONLOUIS Kevyn 00005 * DUREUIL Brice 00006 * Modified: lundi 7 mai 2012 22:45:20 00007 * Purpose: Declaration of the class Item 00008 ***********************************************************************/ 00009 00010 #ifndef ITEM_H 00011 #define ITEM_H 00012 00023 #include <QString> 00024 #include <QVector> 00025 #include <QObject> 00026 #include <QModelIndex> 00027 #include <QList> 00028 #include <QLine> 00029 #include <QVariant> 00030 00041 class Item : public QObject 00042 { 00043 Q_OBJECT 00044 public: 00050 typedef struct {Item* sender; int output; Item* receiver; int input; int* value; } s_connect; 00051 00057 enum Items { Input, Output, Not, Or, Xor, XNOr, And, Mux, Demux, Node }; 00058 00059 public: 00067 explicit Item(QObject *parent = 0); 00068 00074 QString getName(); 00075 00081 QString getImage(); 00082 00088 Items getClass(); 00089 00095 int getAuxValue(); 00096 00102 QVector<s_connect *> getOutputs(); 00103 00109 QVector<s_connect *> getInputs(); 00110 00116 void setName(QString name); 00117 00123 virtual void setAuxValue(int value); 00124 00131 bool addNext(s_connect* conn); 00132 00139 bool askForConnection(s_connect* conn); 00140 00146 bool checkAllValueReceived(); 00147 00154 s_connect* deleteInput(int input); 00155 00162 s_connect* deleteOutput(int output); 00163 00164 protected : 00170 virtual bool _do() = 0; 00171 00172 signals : 00179 void sendSignal(); 00180 00181 public slots: 00188 void recvSignal(); 00189 00190 protected : 00191 int aux; 00192 Items classe; 00193 QString name; 00194 QString image; 00195 QVector<s_connect *> outputs; 00196 QVector<s_connect *> inputs; 00198 private : 00199 bool deleted; 00201 }; 00202 00203 #endif // ITEM_H
1.8.0