ELVE  1
ELVE Logic Visualization Explorer
/home/travis/build/stdgregwar/elve/Core/interfaces/NodeLook.h
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     //To override when creating looks
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
 All Classes Functions