X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FcpPipelineEditor%2FQNodesEditor.h;h=d148bbe82aa5497a0f3fa1d5dfe19c324cd77919;hb=c06908465eb6da50572779f423d1e2c9e03b68dd;hp=c2db807d2d82f111e472fa547e50ae226ed9a8e3;hpb=9c75dcecf566cc567583caf4687ce523a2af586d;p=cpPlugins.git diff --git a/appli/cpPipelineEditor/QNodesEditor.h b/appli/cpPipelineEditor/QNodesEditor.h index c2db807..d148bbe 100644 --- a/appli/cpPipelineEditor/QNodesEditor.h +++ b/appli/cpPipelineEditor/QNodesEditor.h @@ -28,10 +28,25 @@ #define __PIPELINEEDITOR__QNODESEDITOR__H__ #include +#include +#include +#include class QGraphicsScene; +class QGraphicsSceneMouseEvent; class QGraphicsItem; -class QPointF; +class QGraphicsSceneContextMenuEvent; +class QGraphicsSceneDragDropEvent; +class QGraphicsSceneHelpEvent; +class QGraphicsSceneHoverEvent; +class QGraphicsSceneMouseEvent; +class QGraphicsSceneMoveEvent; +class QGraphicsSceneResizeEvent; +class QGraphicsSceneWheelEvent; + +// ------------------------------------------------------------------------- +#define PipelineEditor_QNodesEditor_Callback_DCL( E ) \ + void _##E##_cbk( Q##E##Event* e ); namespace PipelineEditor { @@ -49,20 +64,69 @@ namespace PipelineEditor typedef QNodesEditor Self; typedef QObject Superclass; + typedef cpPlugins::Interface::Workspace TWorkspace; + typedef TWorkspace::TFilter TFilter; + typedef + cpExtensions::DataStructures:: + Graph< QNEBlock*, QNEConnection*, std::string > TGraph; + public: explicit QNodesEditor( QObject* parent = 0 ); virtual ~QNodesEditor( ); - void install( QGraphicsScene* s ); + TWorkspace* workspace( ); + const TWorkspace* workspace( ) const; + void setWorkspace( TWorkspace* ws ); + std::string createFilter( + const std::string& filter, + const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) ) + ); + + void install( QGraphicsScene* s ); bool eventFilter( QObject* o, QEvent* e ); private: QGraphicsItem* itemAt( const QPointF& pos ); + inline void _CreateBlock( TFilter* f, const QPointF& pnt ); + + protected: + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent; + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent; + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent; + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent; + typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverEnterEvent; + typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverMoveEvent; + typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverLeaveEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseDoubleClickEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseMoveEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMousePressEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseReleaseEvent; + + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneContextMenu ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDragEnter ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDragLeave ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDragMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDrop ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHelp ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHoverEnter ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHoverLeave ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHoverMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMouseDoubleClick ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMouseMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMousePress ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMouseRelease ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneResize ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneWheel ); + private: QGraphicsScene* m_Scene; QNEConnection* m_Conn; + + TWorkspace* m_Workspace; + TGraph::Pointer m_Graph; }; } // ecapseman @@ -70,3 +134,25 @@ namespace PipelineEditor #endif // __PIPELINEEDITOR__QNODESEDITOR__H__ // eof - $RCSfile$ + + /* TODO + case QEvent::GraphicsSceneContextMenu: + QGraphicsSceneContextMenuEvent* evt = + + case QEvent::GraphicsSceneDragEnter: + case QEvent::GraphicsSceneDragLeave: + case QEvent::GraphicsSceneDragMove: + case QEvent::GraphicsSceneDrop: + case QEvent::GraphicsSceneHelp: + case QEvent::GraphicsSceneHoverEnter: + case QEvent::GraphicsSceneHoverLeave: + case QEvent::GraphicsSceneHoverMove: + case QEvent::GraphicsSceneMouseDoubleClick: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseRelease: + case QEvent::GraphicsSceneMove: + case QEvent::GraphicsSceneResize: + case QEvent::GraphicsSceneWheel: + */ +