qwt_plot_picker.h 2.74 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 * Qwt Widget Library
 * Copyright (C) 1997   Josef Wilgen
 * Copyright (C) 2002   Uwe Rathmann
5
 *
pixhawk's avatar
pixhawk committed
6 7 8 9 10 11 12
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the Qwt License, Version 1.0
 *****************************************************************************/

#ifndef QWT_PLOT_PICKER_H
#define QWT_PLOT_PICKER_H

Bryant's avatar
Bryant committed
13
#include "qwt_global.h"
pixhawk's avatar
pixhawk committed
14
#include "qwt_picker.h"
Bryant's avatar
Bryant committed
15
#include <qvector.h>
pixhawk's avatar
pixhawk committed
16 17 18 19 20 21 22 23

class QwtPlot;

/*!
  \brief QwtPlotPicker provides selections on a plot canvas

  QwtPlotPicker is a QwtPicker tailored for selections on
  a plot canvas. It is set to a x-Axis and y-Axis and
Bryant's avatar
Bryant committed
24
  translates all pixel coordinates into this coordinate system.
pixhawk's avatar
pixhawk committed
25 26 27 28 29 30 31
*/

class QWT_EXPORT QwtPlotPicker: public QwtPicker
{
    Q_OBJECT

public:
Bryant's avatar
Bryant committed
32 33
    explicit QwtPlotPicker( QWidget *canvas );
    virtual ~QwtPlotPicker();
pixhawk's avatar
pixhawk committed
34

Bryant's avatar
Bryant committed
35
    explicit QwtPlotPicker( int xAxis, int yAxis, QWidget * );
pixhawk's avatar
pixhawk committed
36

Bryant's avatar
Bryant committed
37 38
    explicit QwtPlotPicker( int xAxis, int yAxis,
        RubberBand rubberBand, DisplayMode trackerMode, QWidget * );
pixhawk's avatar
pixhawk committed
39

Bryant's avatar
Bryant committed
40
    virtual void setAxis( int xAxis, int yAxis );
pixhawk's avatar
pixhawk committed
41 42 43 44 45 46

    int xAxis() const;
    int yAxis() const;

    QwtPlot *plot();
    const QwtPlot *plot() const;
47

Bryant's avatar
Bryant committed
48 49
    QWidget *canvas();
    const QWidget *canvas() const;
pixhawk's avatar
pixhawk committed
50

Bryant's avatar
Bryant committed
51
Q_SIGNALS:
pixhawk's avatar
pixhawk committed
52 53

    /*!
Bryant's avatar
Bryant committed
54
      A signal emitted in case of QwtPickerMachine::PointSelection.
pixhawk's avatar
pixhawk committed
55 56
      \param pos Selected point
    */
Bryant's avatar
Bryant committed
57
    void selected( const QPointF &pos );
pixhawk's avatar
pixhawk committed
58 59

    /*!
Bryant's avatar
Bryant committed
60
      A signal emitted in case of QwtPickerMachine::RectSelection.
pixhawk's avatar
pixhawk committed
61 62
      \param rect Selected rectangle
    */
Bryant's avatar
Bryant committed
63
    void selected( const QRectF &rect );
pixhawk's avatar
pixhawk committed
64 65 66 67 68 69 70

    /*!
      A signal emitting the selected points,
      at the end of a selection.

      \param pa Selected points
    */
Bryant's avatar
Bryant committed
71
    void selected( const QVector<QPointF> &pa );
pixhawk's avatar
pixhawk committed
72 73 74 75 76 77 78

    /*!
      A signal emitted when a point has been appended to the selection

      \param pos Position of the appended point.
      \sa append(). moved()
    */
Bryant's avatar
Bryant committed
79
    void appended( const QPointF &pos );
pixhawk's avatar
pixhawk committed
80 81 82 83 84 85

    /*!
      A signal emitted whenever the last appended point of the
      selection has been moved.

      \param pos Position of the moved last point of the selection.
86
      \sa move(), appended()
pixhawk's avatar
pixhawk committed
87
    */
Bryant's avatar
Bryant committed
88
    void moved( const QPointF &pos );
pixhawk's avatar
pixhawk committed
89 90

protected:
Bryant's avatar
Bryant committed
91
    QRectF scaleRect() const;
pixhawk's avatar
pixhawk committed
92

Bryant's avatar
Bryant committed
93 94
    QRectF invTransform( const QRect & ) const;
    QRect transform( const QRectF & ) const;
pixhawk's avatar
pixhawk committed
95

Bryant's avatar
Bryant committed
96 97
    QPointF invTransform( const QPoint & ) const;
    QPoint transform( const QPointF & ) const;
pixhawk's avatar
pixhawk committed
98

Bryant's avatar
Bryant committed
99 100
    virtual QwtText trackerText( const QPoint & ) const;
    virtual QwtText trackerTextF( const QPointF & ) const;
pixhawk's avatar
pixhawk committed
101

Bryant's avatar
Bryant committed
102 103 104
    virtual void move( const QPoint & );
    virtual void append( const QPoint & );
    virtual bool end( bool ok = true );
pixhawk's avatar
pixhawk committed
105 106 107 108 109

private:
    int d_xAxis;
    int d_yAxis;
};
110

pixhawk's avatar
pixhawk committed
111
#endif