67 lines
1.2 KiB
C++
67 lines
1.2 KiB
C++
#ifndef _EDITOR_H_
|
|
#define _EDITOR_H_
|
|
|
|
#include <qobject.h>
|
|
#include <qregion.h>
|
|
#include <qpointer.h>
|
|
#include <qwt_widget_overlay.h>
|
|
|
|
class QwtPlot;
|
|
class QwtPlotShapeItem;
|
|
class QPainter;
|
|
class QPoint;
|
|
|
|
class Editor: public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum Mode
|
|
{
|
|
NoMask,
|
|
Mask,
|
|
AlphaMask,
|
|
AlphaMaskRedraw,
|
|
AlphaMaskCopyMask
|
|
};
|
|
|
|
Editor( QwtPlot * );
|
|
virtual ~Editor();
|
|
|
|
const QwtPlot *plot() const;
|
|
QwtPlot *plot();
|
|
|
|
virtual void setEnabled( bool on );
|
|
bool isEnabled() const;
|
|
|
|
void drawOverlay( QPainter * ) const;
|
|
QRegion maskHint() const;
|
|
|
|
virtual bool eventFilter( QObject *, QEvent *);
|
|
|
|
void setMode( Mode mode );
|
|
Mode mode() const;
|
|
|
|
private:
|
|
bool pressed( const QPoint & );
|
|
bool moved( const QPoint & );
|
|
void released( const QPoint & );
|
|
|
|
QwtPlotShapeItem* itemAt( const QPoint& ) const;
|
|
void raiseItem( QwtPlotShapeItem * );
|
|
|
|
QRegion maskHint( QwtPlotShapeItem * ) const;
|
|
void setItemVisible( QwtPlotShapeItem *item, bool on );
|
|
|
|
bool d_isEnabled;
|
|
QPointer<QwtWidgetOverlay> d_overlay;
|
|
|
|
// Mouse positions
|
|
QPointF d_currentPos;
|
|
QwtPlotShapeItem* d_editedItem;
|
|
|
|
Mode d_mode;
|
|
};
|
|
|
|
#endif
|