Skip to content
qwt_plot_picker.h 2.74 KiB
Newer Older
pixhawk's avatar
pixhawk committed
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 * Qwt Widget Library
 * Copyright (C) 1997   Josef Wilgen
 * Copyright (C) 2002   Uwe Rathmann
pixhawk's avatar
pixhawk committed
 * 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
#include "qwt_global.h"
pixhawk's avatar
pixhawk committed
#include "qwt_picker.h"
Bryant's avatar
Bryant committed
#include <qvector.h>
pixhawk's avatar
pixhawk committed

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
  translates all pixel coordinates into this coordinate system.
pixhawk's avatar
pixhawk committed
*/

class QWT_EXPORT QwtPlotPicker: public QwtPicker
{
    Q_OBJECT

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

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

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

Bryant's avatar
Bryant committed
    virtual void setAxis( int xAxis, int yAxis );
pixhawk's avatar
pixhawk committed

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

    QwtPlot *plot();
    const QwtPlot *plot() const;
Bryant's avatar
Bryant committed
    QWidget *canvas();
    const QWidget *canvas() const;
pixhawk's avatar
pixhawk committed

Bryant's avatar
Bryant committed
Q_SIGNALS:
pixhawk's avatar
pixhawk committed

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

    /*!
Bryant's avatar
Bryant committed
      A signal emitted in case of QwtPickerMachine::RectSelection.
pixhawk's avatar
pixhawk committed
      \param rect Selected rectangle
    */
Bryant's avatar
Bryant committed
    void selected( const QRectF &rect );
pixhawk's avatar
pixhawk committed

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

      \param pa Selected points
    */
Bryant's avatar
Bryant committed
    void selected( const QVector<QPointF> &pa );
pixhawk's avatar
pixhawk committed

    /*!
      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
    void appended( const QPointF &pos );
pixhawk's avatar
pixhawk committed

    /*!
      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.
      \sa move(), appended()
pixhawk's avatar
pixhawk committed
    */
Bryant's avatar
Bryant committed
    void moved( const QPointF &pos );
pixhawk's avatar
pixhawk committed

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

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

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

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

Bryant's avatar
Bryant committed
    virtual void move( const QPoint & );
    virtual void append( const QPoint & );
    virtual bool end( bool ok = true );
pixhawk's avatar
pixhawk committed

private:
    int d_xAxis;
    int d_yAxis;
};
pixhawk's avatar
pixhawk committed
#endif