MNE-CPP  beta 1.0
arrow.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef ARROW_H
37 #define ARROW_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "pluginitem.h"
46 
47 
48 //*************************************************************************************************************
49 //=============================================================================================================
50 // Qt INCLUDES
51 //=============================================================================================================
52 
53 #include <QSharedPointer>
54 #include <QGraphicsLineItem>
55 
56 
57 //*************************************************************************************************************
58 //=============================================================================================================
59 // FORWARD DECLARATIONS
60 //=============================================================================================================
61 
62 class QGraphicsPolygonItem;
63 class QGraphicsLineItem;
64 class QGraphicsScene;
65 class QRectF;
66 class QGraphicsSceneMouseEvent;
67 class QPainterPath;
68 
69 
70 //*************************************************************************************************************
71 //=============================================================================================================
72 // DEFINE NAMESPACE MNEX
73 //=============================================================================================================
74 
75 namespace MNEX
76 {
77 
78 class Arrow : public QGraphicsLineItem
79 {
80 public:
81  enum { Type = UserType + 4 };
82 
83  Arrow(PluginItem *startItem, PluginItem *endItem, PluginConnectorConnection::SPtr &connection, QGraphicsItem *parent = 0);
84 
85  int type() const { return Type; }
86  QRectF boundingRect() const;
87  QPainterPath shape() const;
88  void setColor(const QColor &color) { m_qColor = color; }
89  PluginItem *startItem() const { return m_StartItem; }
90  PluginItem *endItem() const { return m_EndItem; }
91 
92  PluginConnectorConnection::SPtr connection() { return m_pConnection; }
93 
94  void updatePosition();
95 
96 protected:
97  void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
98 
99 private:
100  PluginItem *m_StartItem;
101  PluginItem *m_EndItem;
102 
103  PluginConnectorConnection::SPtr m_pConnection;
104 
105  QColor m_qColor;
106  QPolygonF arrowHead;
107 };
108 
109 } //NAMESPACE
110 
111 #endif // ARROW_H
QSharedPointer< PluginConnectorConnection > SPtr
Contains the declaration of the PluginConnectorConnection class.
Definition: arrow.h:75
PluginItem class declaration.