#ifndef __cpBaseQtApplication__Pipeline__EventFilter__h__ #define __cpBaseQtApplication__Pipeline__EventFilter__h__ #include #include #include class QGraphicsScene; class QGraphicsSceneMouseEvent; class QGraphicsItem; class QGraphicsSceneContextMenuEvent; class QGraphicsSceneDragDropEvent; class QGraphicsSceneHelpEvent; class QGraphicsSceneHoverEvent; class QGraphicsSceneMouseEvent; class QGraphicsSceneMoveEvent; class QGraphicsSceneResizeEvent; class QGraphicsSceneWheelEvent; // ------------------------------------------------------------------------- #define cpBaseQtApplicationPipelineEventFilterCallbackDCL( E ) \ void _##E##_cbk( QGraphicsScene##E##Event* e ); namespace cpBaseQtApplication { namespace Pipeline { class Canvas; /** */ class cpBaseQtApplication_EXPORT EventFilter : public QObject { Q_OBJECT; public: typedef EventFilter Self; typedef QObject Superclass; public: explicit EventFilter( QObject* parent = 0 ); virtual ~EventFilter( ); Canvas* canvas( ); const Canvas* canvas( ) const; void setCanvas( Canvas* c ); void install( QGraphicsScene* s ); bool eventFilter( QObject* o, QEvent* e ); private: QGraphicsItem* itemAt( const QPointF& pos ); 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; cpBaseQtApplicationPipelineEventFilterCallbackDCL( ContextMenu ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( DragEnter ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( DragLeave ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( DragMove ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( Drop ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( Help ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( HoverEnter ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( HoverLeave ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( HoverMove ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( MouseDoubleClick ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( MouseMove ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( MousePress ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( MouseRelease ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( Move ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( Resize ); cpBaseQtApplicationPipelineEventFilterCallbackDCL( Wheel ); private: QGraphicsScene* m_Scene; Canvas* m_Canvas; }; } // ecapseman } // ecapseman #endif // __cpBaseQtApplication__Pipeline__EventFilter__h__ // eof - $RCSfile$