Files
qwt/examples/itemeditor/Editor.h
2023-10-31 09:22:42 +01:00

72 lines
1.5 KiB
C++

/*****************************************************************************
* Qwt Examples - Copyright (C) 2002 Uwe Rathmann
* This file may be used under the terms of the 3-clause BSD License
*****************************************************************************/
#pragma once
#include <QwtGlobal>
#include <QObject>
#include <QPointer>
#include <QPoint>
class QwtPlot;
class QwtPlotShapeItem;
class QwtWidgetOverlay;
class QPainter;
class QRegion;
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*) QWT_OVERRIDE;
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*, bool on );
bool m_isEnabled;
QPointer< QwtWidgetOverlay > m_overlay;
// Mouse positions
QPointF m_currentPos;
QwtPlotShapeItem* m_editedItem;
Mode m_mode;
};