1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 2 * QwtPolar Widget Library 3 * Copyright (C) 2008 Uwe Rathmann 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the Qwt License, Version 1.0 7 *****************************************************************************/ 8 9 #ifndef QWT_POLAR_PICKER_H 10 #define QWT_POLAR_PICKER_H 11 12 #include "qwt_polar_global.h" 13 #include "qwt_picker.h" 14 #include <qvector.h> 15 #include <qpainterpath.h> 16 17 class QwtPolarPlot; 18 class QwtPolarCanvas; 19 class QwtPointPolar; 20 21 /*! 22 \brief QwtPolarPicker provides selections on a plot canvas 23 24 QwtPolarPicker is a QwtPicker tailored for selections on 25 a polar plot canvas. 26 */ 27 28 class QWT_POLAR_EXPORT QwtPolarPicker: public QwtPicker 29 { 30 Q_OBJECT 31 32 public: 33 explicit QwtPolarPicker( QwtPolarCanvas * ); 34 virtual ~QwtPolarPicker(); 35 36 explicit QwtPolarPicker( 37 RubberBand rubberBand, DisplayMode trackerMode, 38 QwtPolarCanvas * ); 39 40 QwtPolarPlot *plot(); 41 const QwtPolarPlot *plot() const; 42 43 QwtPolarCanvas *canvas(); 44 const QwtPolarCanvas *canvas() const; 45 46 virtual QRect pickRect() const; 47 48 Q_SIGNALS: 49 50 /*! 51 A signal emitted in case of selectionFlags() & PointSelection. 52 \param pos Selected point 53 */ 54 void selected( const QwtPointPolar &pos ); 55 56 /*! 57 A signal emitting the selected points, 58 at the end of a selection. 59 60 \param points Selected points 61 */ 62 void selected( const QVector<QwtPointPolar> &points ); 63 64 /*! 65 A signal emitted when a point has been appended to the selection 66 67 \param pos Position of the appended point. 68 \sa append(). moved() 69 */ 70 void appended( const QwtPointPolar &pos ); 71 72 /*! 73 A signal emitted whenever the last appended point of the 74 selection has been moved. 75 76 \param pos Position of the moved last point of the selection. 77 \sa move(), appended() 78 */ 79 void moved( const QwtPointPolar &pos ); 80 81 protected: 82 QwtPointPolar invTransform( const QPoint & ) const; 83 84 virtual QwtText trackerText( const QPoint & ) const; 85 virtual QwtText trackerTextPolar( const QwtPointPolar & ) const; 86 87 virtual void move( const QPoint & ); 88 virtual void append( const QPoint & ); 89 virtual bool end( bool ok = true ); 90 91 private: 92 virtual QPainterPath pickArea() const; 93 94 class PrivateData; 95 PrivateData *d_data; 96 }; 97 98 #endif 99