#ifndef BNCMAPVIEW_H #define BNCMAPVIEW_H #include #include #include class BncMapView : public QGraphicsView { Q_OBJECT; public: BncMapView(QWidget* parent = NULL); virtual void resetScale(); virtual void zoom(qreal scale); double scale(){ return _scale; } double scale_curr(){ return _scCur; } double scale_rate(){ return _scale/_scCur; } protected: QPointF _currentCenterPoint; // centerpoint for for panning and zooming QPoint _lastPanPoint; // from panning the view void SetCenter(const QPointF& centerPoint); // set the current centerpoint in the QPointF GetCenter(){ return _currentCenterPoint; } virtual void mousePressEvent(QMouseEvent* event); virtual void mouseReleaseEvent(QMouseEvent* event); virtual void mouseMoveEvent(QMouseEvent* event); virtual void wheelEvent(QWheelEvent* event); virtual void resizeEvent(QResizeEvent* event); private: double _scale; // scale double _scCur; // current relative scale }; #endif