Qwt User's Guide
svn
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 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