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