]> Creatis software - cpPlugins.git/blobdiff - lib/cpBaseQtApplication/Pipeline/EventFilter.h
yet another refactoring
[cpPlugins.git] / lib / cpBaseQtApplication / Pipeline / EventFilter.h
diff --git a/lib/cpBaseQtApplication/Pipeline/EventFilter.h b/lib/cpBaseQtApplication/Pipeline/EventFilter.h
new file mode 100644 (file)
index 0000000..0243b7c
--- /dev/null
@@ -0,0 +1,96 @@
+#ifndef __cpBaseQtApplication__Pipeline__EventFilter__h__\r
+#define __cpBaseQtApplication__Pipeline__EventFilter__h__\r
+\r
+#include <cpBaseQtApplication_Export.h>\r
+#include <QObject>\r
+#include <QPointF>\r
+\r
+class QGraphicsScene;\r
+class QGraphicsSceneMouseEvent;\r
+class QGraphicsItem;\r
+class QGraphicsSceneContextMenuEvent;\r
+class QGraphicsSceneDragDropEvent;\r
+class QGraphicsSceneHelpEvent;\r
+class QGraphicsSceneHoverEvent;\r
+class QGraphicsSceneMouseEvent;\r
+class QGraphicsSceneMoveEvent;\r
+class QGraphicsSceneResizeEvent;\r
+class QGraphicsSceneWheelEvent;\r
+\r
+// -------------------------------------------------------------------------\r
+#define cpBaseQtApplicationPipelineEventFilterCallbackDCL( E )  \\r
+  void _##E##_cbk( QGraphicsScene##E##Event* e );\r
+\r
+namespace cpBaseQtApplication\r
+{\r
+  namespace Pipeline\r
+  {\r
+    class Canvas;\r
+\r
+    /**\r
+     */\r
+    class cpBaseQtApplication_EXPORT EventFilter\r
+      : public QObject\r
+    {\r
+      Q_OBJECT;\r
+\r
+    public:\r
+      typedef EventFilter  Self;\r
+      typedef QObject Superclass;\r
+\r
+    public:\r
+      explicit EventFilter( QObject* parent = 0 );\r
+      virtual ~EventFilter( );\r
+\r
+      Canvas* canvas( );\r
+      const Canvas* canvas( ) const;\r
+      void setCanvas( Canvas* c );\r
+\r
+      void install( QGraphicsScene* s );\r
+      bool eventFilter( QObject* o, QEvent* e );\r
+\r
+    private:\r
+      QGraphicsItem* itemAt( const QPointF& pos );\r
+\r
+    protected:\r
+      typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent;\r
+      typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent;\r
+      typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent;\r
+      typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent;\r
+      typedef QGraphicsSceneHoverEvent    QGraphicsSceneHoverEnterEvent;\r
+      typedef QGraphicsSceneHoverEvent    QGraphicsSceneHoverMoveEvent;\r
+      typedef QGraphicsSceneHoverEvent    QGraphicsSceneHoverLeaveEvent;\r
+      typedef QGraphicsSceneMouseEvent    QGraphicsSceneMouseDoubleClickEvent;\r
+      typedef QGraphicsSceneMouseEvent    QGraphicsSceneMouseMoveEvent;\r
+      typedef QGraphicsSceneMouseEvent    QGraphicsSceneMousePressEvent;\r
+      typedef QGraphicsSceneMouseEvent    QGraphicsSceneMouseReleaseEvent;\r
+\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( ContextMenu );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( DragEnter );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( DragLeave );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( DragMove );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( Drop );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( Help );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( HoverEnter );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( HoverLeave );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( HoverMove );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( MouseDoubleClick );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( MouseMove );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( MousePress );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( MouseRelease );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( Move );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( Resize );\r
+      cpBaseQtApplicationPipelineEventFilterCallbackDCL( Wheel );\r
+\r
+    private:\r
+      QGraphicsScene* m_Scene;\r
+      Canvas*         m_Canvas;\r
+    };\r
+\r
+  } // ecapseman\r
+\r
+} // ecapseman\r
+\r
+#endif // __cpBaseQtApplication__Pipeline__EventFilter__h__\r
+\r
+// eof - $RCSfile$\r