qskinny/playground/plots/QskPlotCurve.h

58 lines
1.4 KiB
C
Raw Normal View History

2023-11-28 13:36:47 +01:00
/******************************************************************************
2024-01-17 14:31:45 +01:00
* QSkinny - Copyright (C) The authors
* SPDX-License-Identifier: BSD-3-Clause
2023-11-28 13:36:47 +01:00
*****************************************************************************/
#pragma once
#include "QskPlotItem.h"
#include <qpoint.h>
#include <qvector.h>
class QskPlotCurveData;
class QColor;
class QskPlotCurve : public QskPlotItem
{
Q_OBJECT
Q_PROPERTY( qreal lineWidth READ lineWidth WRITE setLineWidth NOTIFY lineWidthChanged )
Q_PROPERTY( QColor color READ color WRITE setColor NOTIFY colorChanged )
using Inherited = QskPlotItem;
public:
QSK_SUBCONTROLS( Line )
QskPlotCurve( QObject* = nullptr );
~QskPlotCurve() override;
void setPoints( const QVector< QPointF >& );
void setData( QskPlotCurveData* );
QskPlotCurveData* data() const;
QPointF interpolatedPoint( Qt::Orientation, qreal ) const;
void setColor( const QColor& );
QColor color() const;
void setLineWidth( qreal );
qreal lineWidth() const;
void transformationChanged( ChangeFlags ) override;
bool needsClipping() const override;
using QskSkinnable::setColor;
using QskSkinnable::color;
Q_SIGNALS:
void lineWidthChanged( qreal );
void colorChanged( const QColor& );
private:
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};