]> Creatis software - cpPlugins.git/blob - lib/cpBaseQtApplication/Pipeline/Connection.h
yet another refactoring
[cpPlugins.git] / lib / cpBaseQtApplication / Pipeline / Connection.h
1 #ifndef __cpBaseQtApplication__Pipeline__Connection__h__\r
2 #define __cpBaseQtApplication__Pipeline__Connection__h__\r
3 \r
4 #include <cpBaseQtApplication_Export.h>\r
5 #include <QGraphicsPathItem>\r
6 \r
7 namespace cpBaseQtApplication\r
8 {\r
9   namespace Pipeline\r
10   {\r
11     class InputPort;\r
12     class OutputPort;\r
13 \r
14     /**\r
15      */\r
16     class cpBaseQtApplication_EXPORT Connection\r
17       : public QGraphicsPathItem\r
18     {\r
19     public:\r
20       typedef Connection     Self;\r
21       typedef QGraphicsPathItem Superclass;\r
22 \r
23     public:\r
24       enum { Type = QGraphicsItem::UserType + 5 };\r
25 \r
26       Connection( QGraphicsItem* parent = 0, QGraphicsScene* scene = 0 );\r
27       virtual ~Connection( );\r
28 \r
29       void setPos1( const QPointF& p );\r
30       void setPos2( const QPointF& p );\r
31       void setPort1( OutputPort* p );\r
32       void setPort2( InputPort* p );\r
33       void updatePosFromPorts( );\r
34       void updatePath( );\r
35       OutputPort* port1( ) const;\r
36       InputPort* port2( ) const;\r
37 \r
38       inline int type( ) const\r
39         { return( this->Type ); }\r
40 \r
41       virtual void paint(\r
42         QPainter* painter,\r
43         const QStyleOptionGraphicsItem* option,\r
44         QWidget* widget\r
45         );\r
46 \r
47     private:\r
48       QPointF m_Pos1;\r
49       QPointF m_Pos2;\r
50       OutputPort* m_Port1;\r
51       InputPort*  m_Port2;\r
52     };\r
53 \r
54   } // ecapseman\r
55 \r
56 } // ecapseman\r
57 \r
58 #endif // __cpBaseQtApplication__Pipeline__Connection__h__\r
59 \r
60 // eof - $RCSfile$\r