#define __PIPELINEEDITOR__QNEBLOCK__H__\r
\r
#include <QGraphicsPathItem>\r
+#include <cpPlugins/Interface/ProcessObject.h>\r
\r
namespace PipelineEditor\r
{\r
class QNEPort;\r
+ class QNENamePort;\r
+ class QNETypePort;\r
+ class QNEInputPort;\r
+ class QNEOutputPort;\r
\r
class QNEBlock\r
: public QGraphicsPathItem\r
public:\r
typedef QNEBlock Self;\r
typedef QGraphicsPathItem Superclass;\r
+ typedef cpPlugins::Interface::ProcessObject TFilter;\r
\r
public:\r
- enum { Type = QGraphicsItem::UserType + 3 };\r
+ enum { Type = QGraphicsItem::UserType + 6 };\r
\r
- QNEBlock( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
+ QNEBlock(\r
+ TFilter* filter,\r
+ QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL\r
+ );\r
virtual ~QNEBlock( );\r
\r
- QNEPort* addPort(\r
- const QString& name, bool isOutput, int flags = 0, int ptr = 0\r
- );\r
- QNEPort* addInputPort( const QString& name );\r
- QNEPort* addOutputPort( const QString& name );\r
- void addInputPorts( const QStringList& names );\r
- void addOutputPorts( const QStringList& names );\r
+ void setNamePort( const QString& txt );\r
+ QNEInputPort* addInputPort( const QString& txt );\r
+ QNEOutputPort* addOutputPort( const QString& txt );\r
+ QNEInputPort* inputPort( const QString& txt );\r
+ QNEOutputPort* outputPort( const QString& txt );\r
+\r
+ const QString& namePort( ) const;\r
+ const QNEInputPort* inputPort( const QString& txt ) const;\r
+ const QNEOutputPort* outputPort( const QString& txt ) const;\r
+\r
+ inline int type( ) const\r
+ { return( this->Type ); }\r
+\r
void paint(\r
QPainter* painter,\r
const QStyleOptionGraphicsItem* option,\r
QWidget* widget\r
);\r
- QNEBlock* clone( );\r
- QVector< QNEPort* > ports( );\r
-\r
- int type( ) const\r
- { return( this->Type ); }\r
-\r
+ \r
protected:\r
QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
+ void _setTypePort( const QString& txt );\r
+ void _configPort( QNEPort* port );\r
+\r
+ virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent* evt );\r
\r
private:\r
int m_HorzMargin;\r
int m_VertMargin;\r
int m_Width;\r
int m_Height;\r
+\r
+ QNENamePort* m_NamePort;\r
+ QNETypePort* m_TypePort;\r
+ std::map< std::string, QNEInputPort* > m_InputPorts;\r
+ std::map< std::string, QNEOutputPort* > m_OutputPorts;\r
+\r
+ TFilter::Pointer m_Filter;\r
};\r
\r
} // ecapseman\r