]> Creatis software - cpPlugins.git/blob - appli/cpPipelineEditor/QNodesEditorCanvas.h
...
[cpPlugins.git] / appli / cpPipelineEditor / QNodesEditorCanvas.h
1 #ifndef __PIPELINEEDITOR__QNODESEDITORCANVAS__H__
2 #define __PIPELINEEDITOR__QNODESEDITORCANVAS__H__
3
4 #include <QtGui/QGraphicsView>
5 #include <cpExtensions/DataStructures/Graph.h>
6 #include <cpPlugins/Interface/Workspace.h>
7
8 namespace PipelineEditor
9 {
10   // Some other forward declarations
11   class QNEBlock;
12   class QNEConnection;
13   class QNodesEditor;
14
15   /**
16    */
17   class QNodesEditorCanvas
18     : public QGraphicsView
19   {
20     Q_OBJECT;
21
22   public:
23     typedef cpPlugins::Interface::Workspace TWorkspace;
24     typedef TWorkspace::TFilter             TFilter;
25     typedef
26       cpExtensions::DataStructures::
27       Graph< QNEBlock*, QNEConnection*, std::string > TGraph;
28
29   public:
30     QNodesEditorCanvas( QWidget* parent = 0 );
31     virtual ~QNodesEditorCanvas( );
32
33     TWorkspace* workspace( );
34     const TWorkspace* workspace( ) const;
35     void setWorkspace( TWorkspace* ws );
36
37   protected:
38     /* TODO
39        void keyPressEvent( QKeyEvent* event );
40        void timerEvent( QTimerEvent* event );
41     */
42     void wheelEvent( QWheelEvent* event );
43
44     void dragEnterEvent( QDragEnterEvent* event );
45     void dragLeaveEvent( QDragLeaveEvent* event );
46     void dragMoveEvent( QDragMoveEvent* event );
47     void dropEvent( QDropEvent* event );
48
49     void _scaleView( qreal scaleFactor );
50     void _createBlock( TFilter* f );
51
52   protected:
53     TWorkspace* m_Workspace;
54     QNodesEditor* m_Editor;
55     TGraph::Pointer m_Graph;
56   };
57
58 } // ecapseman
59
60 #endif // __PIPELINEEDITOR__QNODESEDITORCANVAS__H__
61
62 // eof - $RCSfile$