typedef QGraphicsPathItem Superclass;\r
\r
enum { Type = QGraphicsItem::UserType + 1 };\r
- enum { NamePort = 1, TypePort = 2 };\r
\r
public:\r
- QNEPort( QGraphicsItem* parent = 0, QGraphicsScene* scene = NULL );\r
+ QNEPort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
virtual ~QNEPort( );\r
\r
- void setNEBlock( QNEBlock* b );\r
- void setName( const QString& n );\r
- void setIsOutput( bool o );\r
- int radius( );\r
- bool isOutput( );\r
- QVector< QNEConnection* >& connections( );\r
- void setPortFlags( int f );\r
+ void setBlock( QNEBlock* b );\r
+ inline QNEBlock* block( ) const\r
+ { return( this->m_Block ); }\r
+\r
+ virtual void setName( const QString& n );\r
+ inline const QString& name( ) const\r
+ { return( this->m_Name ); }\r
\r
- QNEBlock* block( ) const;\r
- quint64 ptr( );\r
void setPtr( quint64 p );\r
- bool isConnected( QNEPort* other );\r
+ inline quint64 ptr( )\r
+ { return( this->m_Ptr ); }\r
\r
- inline const QString& portName( ) const\r
- { return( this->m_Name ); }\r
- inline int portFlags( ) const\r
- { return( this->m_PortFlags ); }\r
- int type( ) const\r
+ inline int radius( ) const\r
+ { return( this->m_Radius ); }\r
+\r
+ virtual bool isConnected( QNEPort* other ) = 0;\r
+ inline int type( ) const\r
{ return( this->Type ); }\r
\r
protected:\r
- QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
-\r
- private:\r
QNEBlock* m_Block;\r
- QString m_Name;\r
- bool m_IsOutput;\r
+\r
+ QString m_Name;\r
QGraphicsTextItem* m_Label;\r
- int m_Radius;\r
- int m_Margin;\r
+ int m_Radius;\r
+ int m_Margin;\r
+ quint64 m_Ptr;\r
+ };\r
+\r
+ /**\r
+ */\r
+ class QNENamePort\r
+ : public QNEPort\r
+ {\r
+ public:\r
+ typedef QNENamePort Self;\r
+ typedef QNEPort Superclass;\r
+\r
+ enum { Type = Superclass::Type + 1 };\r
+\r
+ public:\r
+ QNENamePort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
+ virtual ~QNENamePort( );\r
+\r
+ virtual void setName( const QString& n );\r
+\r
+ virtual bool isConnected( QNEPort* other );\r
+ inline int type( ) const\r
+ { return( this->Type ); }\r
+ };\r
+\r
+ /**\r
+ */\r
+ class QNETypePort\r
+ : public QNEPort\r
+ {\r
+ public:\r
+ typedef QNETypePort Self;\r
+ typedef QNEPort Superclass;\r
+\r
+ enum { Type = Superclass::Type + 2 };\r
+\r
+ public:\r
+ QNETypePort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
+ virtual ~QNETypePort( );\r
+\r
+ virtual void setName( const QString& n );\r
+\r
+ virtual bool isConnected( QNEPort* other );\r
+ inline int type( ) const\r
+ { return( this->Type ); }\r
+ };\r
+\r
+ /**\r
+ */\r
+ class QNEInputPort\r
+ : public QNEPort\r
+ {\r
+ public:\r
+ typedef QNEInputPort Self;\r
+ typedef QNEPort Superclass;\r
+\r
+ enum { Type = Superclass::Type + 3 };\r
+\r
+ public:\r
+ QNEInputPort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
+ virtual ~QNEInputPort( );\r
+\r
+ virtual void setName( const QString& n );\r
+\r
+ virtual bool isConnected( QNEPort* other );\r
+ inline int type( ) const\r
+ { return( this->Type ); }\r
+\r
+ void setConnection( QNEConnection* c );\r
+ inline QNEConnection* connection( )\r
+ { return( this->m_Connection ); }\r
+ inline const QNEConnection* connection( ) const\r
+ { return( this->m_Connection ); }\r
+ inline bool hasConnection( ) const\r
+ { return( this->m_Connection != NULL ); }\r
+\r
+ protected:\r
+ QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
+\r
+ protected:\r
+ QNEConnection* m_Connection;\r
+ };\r
+\r
+ /**\r
+ */\r
+ class QNEOutputPort\r
+ : public QNEPort\r
+ {\r
+ public:\r
+ typedef QNEOutputPort Self;\r
+ typedef QNEPort Superclass;\r
+\r
+ enum { Type = Superclass::Type + 4 };\r
+\r
+ public:\r
+ QNEOutputPort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
+ virtual ~QNEOutputPort( );\r
+\r
+ virtual void setName( const QString& n );\r
+\r
+ virtual bool isConnected( QNEPort* other );\r
+ inline int type( ) const\r
+ { return( this->Type ); }\r
+\r
+ inline QVector< QNEConnection* >& connections( )\r
+ { return( this->m_Connections ); }\r
+ inline const QVector< QNEConnection* >& connections( ) const\r
+ { return( this->m_Connections ); }\r
+\r
+ protected:\r
+ QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
+\r
+ protected:\r
QVector< QNEConnection* > m_Connections;\r
- int m_PortFlags;\r
- quint64 m_Ptr;\r
};\r
\r
} // ecapseman\r