00001 #ifndef NODEITEM_H
00002 #define NODEITEM_H
00003
00004 #include <QGraphicsSvgItem>
00005 #include <QStateMachine>
00006 #include <QState>
00007 #include <QPropertyAnimation>
00008 #include <QSvgRenderer>
00009 #include <QGraphicsTextItem>
00010 #include <QGraphicsPixmapItem>
00011 #include <QGraphicsColorizeEffect>
00012 #include <QMap>
00013 #include <QList>
00014 #include <QHash>
00015 #include <QListIterator>
00016 #include <QByteArray>
00017 #include <QString>
00018 #include <QFont>
00019 #include <QPixmap>
00020 #include <QGraphicsItem>
00021 #include <QEvent>
00022 #include "node.h"
00023
00024
00025 class NodeItem : public QGraphicsSvgItem
00026 {
00027 Q_OBJECT
00028 qreal _originalWidth;
00029 qreal _width;
00030 public:
00031 NodeItem( Node* n );
00032 enum { Type = 65578 };
00033 Node* node() const
00034 {
00035 return _node;
00036 }
00037 static QMap<QString, QSvgRenderer*> _renders;
00038 QHash<QString, QGraphicsSvgItem*> connectors();
00039 int type() const
00040 {
00041 return Type;
00042 }
00043 public slots:
00044 void setupNode();
00045 private slots:
00046 void updateRenderer();
00047 void updateIcon();
00048 void updateName();
00049 void updateValue();
00050 void updateColor();
00051 void updatePos();
00052 void updateSize();
00053 void updateConnectors();
00054 void updateImage();
00055 private:
00056 Node* _node;
00057 QString _iconPackage;
00058 QString _element;
00059 QGraphicsSimpleTextItem* _name;
00060 QGraphicsSimpleTextItem* _value;
00061 QGraphicsPixmapItem* _image;
00062 QHash<QString, QGraphicsSvgItem*> _connectors;
00063 QGraphicsColorizeEffect* _colorizer;
00064 QFont _font;
00065 int ldown;
00066 int rdown;
00067 int previousCount;
00068 };
00069
00070 #include "node.h"
00071
00072 #endif