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
60 bool deleteFilter( const std::string& name );
\r
61 bool deleteConnection(
\r
62 const std::string& src, const std::string& des,
\r
63 const std::string& in, const std::string& out
\r
66 void install( QGraphicsScene* s );
\r
67 bool eventFilter( QObject* o, QEvent* e );
\r
69 void updateFilter( const std::string& filter_name );
\r
70 void showOutputData(
\r
71 const std::string& filter_name,
\r
72 const std::string& output_name
\r
76 void execFilter( const std::string& filter_name );
\r
77 void showFilterOutput(
\r
78 const std::string& filter_name,
\r
79 const std::string& output_name
\r
83 QGraphicsItem* itemAt( const QPointF& pos );
\r
85 inline Block* _createBlock(
\r
86 TFilter* f, const QString& name, const QPointF& pnt
\r
90 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent;
\r
91 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent;
\r
92 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent;
\r
93 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent;
\r
94 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverEnterEvent;
\r
95 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverMoveEvent;
\r
96 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverLeaveEvent;
\r
97 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseDoubleClickEvent;
\r
98 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseMoveEvent;
\r
99 typedef QGraphicsSceneMouseEvent QGraphicsSceneMousePressEvent;
\r
100 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseReleaseEvent;
\r
102 cpPipelineEditor_Editor_Callback_DCL( ContextMenu );
\r
103 cpPipelineEditor_Editor_Callback_DCL( DragEnter );
\r
104 cpPipelineEditor_Editor_Callback_DCL( DragLeave );
\r
105 cpPipelineEditor_Editor_Callback_DCL( DragMove );
\r
106 cpPipelineEditor_Editor_Callback_DCL( Drop );
\r
107 cpPipelineEditor_Editor_Callback_DCL( Help );
\r
108 cpPipelineEditor_Editor_Callback_DCL( HoverEnter );
\r
109 cpPipelineEditor_Editor_Callback_DCL( HoverLeave );
\r
110 cpPipelineEditor_Editor_Callback_DCL( HoverMove );
\r
111 cpPipelineEditor_Editor_Callback_DCL( MouseDoubleClick );
\r
112 cpPipelineEditor_Editor_Callback_DCL( MouseMove );
\r
113 cpPipelineEditor_Editor_Callback_DCL( MousePress );
\r
114 cpPipelineEditor_Editor_Callback_DCL( MouseRelease );
\r
115 cpPipelineEditor_Editor_Callback_DCL( Move );
\r
116 cpPipelineEditor_Editor_Callback_DCL( Resize );
\r
117 cpPipelineEditor_Editor_Callback_DCL( Wheel );
\r
120 QGraphicsScene* m_Scene;
\r
121 Connection* m_ActualConnection;
\r
123 TWorkspace* m_Workspace;
\r
124 TGraph::Pointer m_Graph;
\r
129 #endif // __CPPIPELINEEDITOR__EDITOR__H__
\r