00001 #ifndef PLOTZOOMER_H 00002 #define PLOTZOOMER_H 00003 00004 #include <QObject> 00005 #include "qwt_plot_zoomer.h" 00006 00007 class PlotZoomer : public QwtPlotZoomer 00008 { 00009 public: 00010 PlotZoomer(); 00011 00012 explicit PlotZoomer( QWidget *); 00013 00014 virtual ~PlotZoomer() override = default; 00015 00016 void keepAspectratio(bool doKeep) 00017 { 00018 _keep_aspect_ratio = doKeep; 00019 } 00020 00021 protected: 00022 virtual void widgetMousePressEvent( QMouseEvent * event) override; 00023 virtual void widgetMouseReleaseEvent( QMouseEvent * event) override; 00024 virtual void widgetMouseMoveEvent( QMouseEvent * event) override; 00025 virtual bool accept( QPolygon & ) const override; 00026 00027 virtual void zoom( const QRectF &rect ) override; 00028 00029 virtual QSizeF minZoomSize() const override; 00030 private: 00031 bool _mouse_pressed; 00032 bool _zoom_enabled; 00033 bool _keep_aspect_ratio; 00034 QPoint _initial_pos; 00035 }; 00036 00037 #endif // PLOTZOOMER_H