00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_PICKER_H
00011 #define QWT_PLOT_PICKER_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_plot_canvas.h"
00015 #include "qwt_picker.h"
00016 #include <qvector.h>
00017
00018 class QwtPlot;
00019
00028 class QWT_EXPORT QwtPlotPicker: public QwtPicker
00029 {
00030 Q_OBJECT
00031
00032 public:
00033 explicit QwtPlotPicker( QwtPlotCanvas * );
00034 virtual ~QwtPlotPicker();
00035
00036 explicit QwtPlotPicker( int xAxis, int yAxis, QwtPlotCanvas * );
00037
00038 explicit QwtPlotPicker( int xAxis, int yAxis,
00039 RubberBand rubberBand, DisplayMode trackerMode,
00040 QwtPlotCanvas * );
00041
00042 virtual void setAxis( int xAxis, int yAxis );
00043
00044 int xAxis() const;
00045 int yAxis() const;
00046
00047 QwtPlot *plot();
00048 const QwtPlot *plot() const;
00049
00050 QwtPlotCanvas *canvas();
00051 const QwtPlotCanvas *canvas() const;
00052
00053 Q_SIGNALS:
00054
00059 void selected( const QPointF &pos );
00060
00065 void selected( const QRectF &rect );
00066
00073 void selected( const QVector<QPointF> &pa );
00074
00081 void appended( const QPointF &pos );
00082
00090 void moved( const QPointF &pos );
00091
00092 protected:
00093 QRectF scaleRect() const;
00094
00095 QRectF invTransform( const QRect & ) const;
00096 QRect transform( const QRectF & ) const;
00097
00098 QPointF invTransform( const QPoint & ) const;
00099 QPoint transform( const QPointF & ) const;
00100
00101 virtual QwtText trackerText( const QPoint & ) const;
00102 virtual QwtText trackerTextF( const QPointF & ) const;
00103
00104 virtual void move( const QPoint & );
00105 virtual void append( const QPoint & );
00106 virtual bool end( bool ok = true );
00107
00108 private:
00109 int d_xAxis;
00110 int d_yAxis;
00111 };
00112
00113 #endif