00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_MAGNIFIER_H
00011 #define QWT_PLOT_MAGNIFIER_H 1
00012
00013 #include "qwt_global.h"
00014 #include <qobject.h>
00015
00016 class QwtPlotCanvas;
00017 class QwtPlot;
00018 class QMouseEvent;
00019 class QWheelEvent;
00020 class QKeyEvent;
00021
00030 class QWT_EXPORT QwtPlotMagnifier: public QObject
00031 {
00032 Q_OBJECT
00033
00034 public:
00035 explicit QwtPlotMagnifier(QwtPlotCanvas *);
00036 virtual ~QwtPlotMagnifier();
00037
00038 void setEnabled(bool);
00039 bool isEnabled() const;
00040
00041 void setAxisEnabled(int axis, bool on);
00042 bool isAxisEnabled(int axis) const;
00043
00044
00045 void setMouseFactor(double);
00046 double mouseFactor() const;
00047
00048 void setMouseButton(int button, int buttonState = Qt::NoButton);
00049 void getMouseButton(int &button, int &buttonState) const;
00050
00051
00052 void setWheelFactor(double);
00053 double wheelFactor() const;
00054
00055 void setWheelButtonState(int buttonState);
00056 int wheelButtonState() const;
00057
00058
00059 void setKeyFactor(double);
00060 double keyFactor() const;
00061
00062 void setZoomInKey(int key, int buttonState);
00063 void getZoomInKey(int &key, int &buttonState);
00064
00065 void setZoomOutKey(int key, int buttonState);
00066 void getZoomOutKey(int &key, int &buttonState);
00067
00068 QwtPlotCanvas *canvas();
00069 const QwtPlotCanvas *canvas() const;
00070
00071 QwtPlot *plot();
00072 const QwtPlot *plot() const;
00073
00074 virtual bool eventFilter(QObject *, QEvent *);
00075
00076 protected:
00077 virtual void rescale(double factor);
00078
00079 virtual void widgetMousePressEvent(QMouseEvent *);
00080 virtual void widgetMouseReleaseEvent(QMouseEvent *);
00081 virtual void widgetMouseMoveEvent(QMouseEvent *);
00082 virtual void widgetWheelEvent(QWheelEvent *);
00083 virtual void widgetKeyPressEvent(QKeyEvent *);
00084 virtual void widgetKeyReleaseEvent(QKeyEvent *);
00085
00086 private:
00087 class PrivateData;
00088 PrivateData *d_data;
00089 };
00090
00091 #endif