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