]> Creatis software - cpPlugins.git/blobdiff - lib/cpBaseQtApplication/Pipeline/Connection.h
yet another refactoring
[cpPlugins.git] / lib / cpBaseQtApplication / Pipeline / Connection.h
diff --git a/lib/cpBaseQtApplication/Pipeline/Connection.h b/lib/cpBaseQtApplication/Pipeline/Connection.h
new file mode 100644 (file)
index 0000000..ecfc8d2
--- /dev/null
@@ -0,0 +1,60 @@
+#ifndef __cpBaseQtApplication__Pipeline__Connection__h__\r
+#define __cpBaseQtApplication__Pipeline__Connection__h__\r
+\r
+#include <cpBaseQtApplication_Export.h>\r
+#include <QGraphicsPathItem>\r
+\r
+namespace cpBaseQtApplication\r
+{\r
+  namespace Pipeline\r
+  {\r
+    class InputPort;\r
+    class OutputPort;\r
+\r
+    /**\r
+     */\r
+    class cpBaseQtApplication_EXPORT Connection\r
+      : public QGraphicsPathItem\r
+    {\r
+    public:\r
+      typedef Connection     Self;\r
+      typedef QGraphicsPathItem Superclass;\r
+\r
+    public:\r
+      enum { Type = QGraphicsItem::UserType + 5 };\r
+\r
+      Connection( QGraphicsItem* parent = 0, QGraphicsScene* scene = 0 );\r
+      virtual ~Connection( );\r
+\r
+      void setPos1( const QPointF& p );\r
+      void setPos2( const QPointF& p );\r
+      void setPort1( OutputPort* p );\r
+      void setPort2( InputPort* p );\r
+      void updatePosFromPorts( );\r
+      void updatePath( );\r
+      OutputPort* port1( ) const;\r
+      InputPort* port2( ) const;\r
+\r
+      inline int type( ) const\r
+        { return( this->Type ); }\r
+\r
+      virtual void paint(\r
+        QPainter* painter,\r
+        const QStyleOptionGraphicsItem* option,\r
+        QWidget* widget\r
+        );\r
+\r
+    private:\r
+      QPointF m_Pos1;\r
+      QPointF m_Pos2;\r
+      OutputPort* m_Port1;\r
+      InputPort*  m_Port2;\r
+    };\r
+\r
+  } // ecapseman\r
+\r
+} // ecapseman\r
+\r
+#endif // __cpBaseQtApplication__Pipeline__Connection__h__\r
+\r
+// eof - $RCSfile$\r