00001 #ifndef NODELOOK_H
00002 #define NODELOOK_H
00003
00004 #include <QGraphicsItemGroup>
00005 #include <Node.h>
00006 #include <Movable.h>
00007
00008 namespace Elve {
00009
00013 enum OrientationHint {
00014 BOTTOMUP,
00015 TOPDOWN,
00016 LEFTRIGHT,
00017 RIGHTLEFT
00018 };
00019
00026 class NodeLook : public QGraphicsItemGroup, public Movable
00027 {
00028 public:
00029
00034 NodeLook(const Node& n);
00035
00036
00037
00045 virtual QPointF inputPos(int index) const ;
00046
00054 virtual QPointF outputPos(int index) const ;
00055
00060 virtual void onColorChange(const QColor& col) = 0;
00061
00066 virtual void onColorReset() = 0;
00067
00068 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
00069 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
00070 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
00071 void onStateChange(const QVector2D& pos, const QVector2D& speed) override;
00072
00077 void color(const QColor& color);
00078
00083 const QColor& color() const;
00084
00089 const Node& node() const;
00090 private:
00091 const Node& mNode;
00092 QPointF mOffset;
00093 QColor mSelectionColor;
00094 bool mDraged;
00095 };
00096 }
00097 #endif // NODELOOK_H