qskinny/playground/shadows/ShadowedArc.h
2024-06-12 12:40:33 +02:00

66 lines
1.5 KiB
C++

/******************************************************************************
* QSkinny - Copyright (C) The authors
* SPDX-License-Identifier: BSD-3-Clause
*****************************************************************************/
#pragma once
#include <QskControl.h>
class QskShadowMetrics;
class QskArcMetrics;
class QskGradient;
class ShadowedArc : public QskControl
{
Q_OBJECT
using Inherited = QskControl;
public:
QSK_SUBCONTROLS( Arc )
ShadowedArc( QQuickItem* parent = nullptr );
~ShadowedArc() override;
qreal thickness() const;
qreal borderWidth() const;
qreal startAngle() const;
qreal spanAngle() const;
qreal offsetX() const;
qreal offsetY() const;
qreal spreadRadius() const;
qreal blurRadius() const;
QColor borderColor() const;
QskGradient fillGradient() const;
QColor shadowColor() const;
public Q_SLOTS:
void setThickness( qreal );
void setBorderWidth( qreal );
void setStartAngle( qreal );
void setSpanAngle( qreal );
void setOffsetX( qreal );
void setOffsetY( qreal );
void setSpreadRadius( qreal );
void setBlurRadius( qreal );
void setBorderColor( const QColor& );
void setFillGradient( const QskGradient& );
void setShadowColor( const QColor& );
private:
QskShadowMetrics shadowMetrics() const;
void setShadowMetrics( const QskShadowMetrics& );
QskArcMetrics arcMetrics() const;
void setArcMetrics( const QskArcMetrics& );
};