# qwt_plot_picker.h

    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 // vim: expandtab
    00011
    00012 #ifndef QWT_PLOT_PICKER_H
    00013 #define QWT_PLOT_PICKER_H
    00014
    00015 #include "qwt_double_rect.h"
    00016 #include "qwt_plot_canvas.h"
    00017 #include "qwt_picker.h"
    00018
    00019 class QwtPlot;
    00020
    00029 class QWT_EXPORT QwtPlotPicker: public QwtPicker
    00030 {
    00031     Q_OBJECT
    00032
    00033 public:
    00034     explicit QwtPlotPicker(QwtPlotCanvas *);
    00035
    00036     explicit QwtPlotPicker(int xAxis, int yAxis,
    00037         QwtPlotCanvas *);
    00038
    00039     explicit QwtPlotPicker(int xAxis, int yAxis, int selectionFlags,
    00040         RubberBand rubberBand, DisplayMode trackerMode,
    00041         QwtPlotCanvas *);
    00042
    00043     virtual void setAxis(int xAxis, int yAxis);
    00044
    00045     int xAxis() const;
    00046     int yAxis() const;
    00047
    00048     QwtPlot *plot();
    00049     const QwtPlot *plot() const;
    00050
    00051     QwtPlotCanvas *canvas();
    00052     const QwtPlotCanvas *canvas() const;
    00053
    00054 signals:
    00055
    00060     void selected(const QwtDoublePoint &pos);
    00061
    00066     void selected(const QwtDoubleRect &rect);
    00067
    00074     void selected(const QwtArray<QwtDoublePoint> &pa);
    00075
    00082     void appended(const QwtDoublePoint &pos);
    00083
    00091     void moved(const QwtDoublePoint &pos);
    00092
    00093 protected:
    00094     QwtDoubleRect scaleRect() const;
    00095
    00096     QwtDoubleRect invTransform(const QRect &) const;
    00097     QRect transform(const QwtDoubleRect &) const;
    00098
    00099     QwtDoublePoint invTransform(const QPoint &) const;
    00100     QPoint transform(const QwtDoublePoint &) const;
    00101
    00102     virtual QwtText trackerText(const QPoint &) const;
    00103     virtual QwtText trackerText(const QwtDoublePoint &) const;
    00104
    00105     virtual void move(const QPoint &);
    00106     virtual void append(const QPoint &);
    00107     virtual bool end(bool ok = true);
    00108
    00109 private:
    00110     int d_xAxis;
    00111     int d_yAxis;
    00112 };
    00113
    00114 #endif