00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_ZOOMER_H
00011 #define QWT_PLOT_ZOOMER_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_plot_picker.h"
00015 #include <qstack.h>
00016
00041 class QWT_EXPORT QwtPlotZoomer: public QwtPlotPicker
00042 {
00043 Q_OBJECT
00044 public:
00045 explicit QwtPlotZoomer( QwtPlotCanvas *, bool doReplot = true );
00046 explicit QwtPlotZoomer( int xAxis, int yAxis,
00047 QwtPlotCanvas *, bool doReplot = true );
00048
00049 virtual ~QwtPlotZoomer();
00050
00051 virtual void setZoomBase( bool doReplot = true );
00052 virtual void setZoomBase( const QRectF & );
00053
00054 QRectF zoomBase() const;
00055 QRectF zoomRect() const;
00056
00057 virtual void setAxis( int xAxis, int yAxis );
00058
00059 void setMaxStackDepth( int );
00060 int maxStackDepth() const;
00061
00062 const QStack<QRectF> &zoomStack() const;
00063 void setZoomStack( const QStack<QRectF> &,
00064 int zoomRectIndex = -1 );
00065
00066 uint zoomRectIndex() const;
00067
00068 public Q_SLOTS:
00069 void moveBy( double x, double y );
00070 virtual void moveTo( const QPointF & );
00071
00072 virtual void zoom( const QRectF & );
00073 virtual void zoom( int up );
00074
00075 Q_SIGNALS:
00083 void zoomed( const QRectF &rect );
00084
00085 protected:
00086 virtual void rescale();
00087
00088 virtual QSizeF minZoomSize() const;
00089
00090 virtual void widgetMouseReleaseEvent( QMouseEvent * );
00091 virtual void widgetKeyPressEvent( QKeyEvent * );
00092
00093 virtual void begin();
00094 virtual bool end( bool ok = true );
00095 virtual bool accept( QPolygon & ) const;
00096
00097 private:
00098 void init( bool doReplot );
00099
00100 class PrivateData;
00101 PrivateData *d_data;
00102 };
00103
00104 #endif