1 #ifndef __CPPIPELINEEDITOR__EDITOR__H__
\r
2 #define __CPPIPELINEEDITOR__EDITOR__H__
\r
4 #include <cpPipelineEditor/cpPipelineEditor_Export.h>
\r
5 #include <cpExtensions/DataStructures/Graph.h>
\r
6 #include <cpPlugins/Interface/Workspace.h>
\r
10 class QGraphicsScene;
\r
11 class QGraphicsSceneMouseEvent;
\r
12 class QGraphicsItem;
\r
13 class QGraphicsSceneContextMenuEvent;
\r
14 class QGraphicsSceneDragDropEvent;
\r
15 class QGraphicsSceneHelpEvent;
\r
16 class QGraphicsSceneHoverEvent;
\r
17 class QGraphicsSceneMouseEvent;
\r
18 class QGraphicsSceneMoveEvent;
\r
19 class QGraphicsSceneResizeEvent;
\r
20 class QGraphicsSceneWheelEvent;
\r
22 // -------------------------------------------------------------------------
\r
23 #define cpPipelineEditor_Editor_Callback_DCL( E ) \
\r
24 void _##E##_cbk( QGraphicsScene##E##Event* e );
\r
26 namespace cpPipelineEditor
\r
33 class cpPipelineEditor_EXPORT Editor
\r
39 typedef Editor Self;
\r
40 typedef QObject Superclass;
\r
42 typedef cpPlugins::Interface::Workspace TWorkspace;
\r
43 typedef TWorkspace::TFilter TFilter;
\r
45 cpExtensions::DataStructures::
\r
46 Graph< Block*, Connection*, std::string > TGraph;
\r
49 explicit Editor( QObject* parent = 0 );
\r
52 TWorkspace* workspace( );
\r
53 const TWorkspace* workspace( ) const;
\r
54 void setWorkspace( TWorkspace* ws );
\r
56 std::string createFilter(
\r
57 const std::string& filter,
\r
58 const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) )
\r
61 void install( QGraphicsScene* s );
\r
62 bool eventFilter( QObject* o, QEvent* e );
\r
65 QGraphicsItem* itemAt( const QPointF& pos );
\r
67 inline void _createBlock( TFilter* f, const QPointF& pnt );
\r
70 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent;
\r
71 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent;
\r
72 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent;
\r
73 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent;
\r
74 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverEnterEvent;
\r
75 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverMoveEvent;
\r
76 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverLeaveEvent;
\r
77 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseDoubleClickEvent;
\r
78 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseMoveEvent;
\r
79 typedef QGraphicsSceneMouseEvent QGraphicsSceneMousePressEvent;
\r
80 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseReleaseEvent;
\r
82 cpPipelineEditor_Editor_Callback_DCL( ContextMenu );
\r
83 cpPipelineEditor_Editor_Callback_DCL( DragEnter );
\r
84 cpPipelineEditor_Editor_Callback_DCL( DragLeave );
\r
85 cpPipelineEditor_Editor_Callback_DCL( DragMove );
\r
86 cpPipelineEditor_Editor_Callback_DCL( Drop );
\r
87 cpPipelineEditor_Editor_Callback_DCL( Help );
\r
88 cpPipelineEditor_Editor_Callback_DCL( HoverEnter );
\r
89 cpPipelineEditor_Editor_Callback_DCL( HoverLeave );
\r
90 cpPipelineEditor_Editor_Callback_DCL( HoverMove );
\r
91 cpPipelineEditor_Editor_Callback_DCL( MouseDoubleClick );
\r
92 cpPipelineEditor_Editor_Callback_DCL( MouseMove );
\r
93 cpPipelineEditor_Editor_Callback_DCL( MousePress );
\r
94 cpPipelineEditor_Editor_Callback_DCL( MouseRelease );
\r
95 cpPipelineEditor_Editor_Callback_DCL( Move );
\r
96 cpPipelineEditor_Editor_Callback_DCL( Resize );
\r
97 cpPipelineEditor_Editor_Callback_DCL( Wheel );
\r
100 QGraphicsScene* m_Scene;
\r
101 Connection* m_ActualConnection;
\r
103 TWorkspace* m_Workspace;
\r
104 TGraph::Pointer m_Graph;
\r
109 #endif // __CPPIPELINEEDITOR__EDITOR__H__
\r