51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
|
#pragma once
|
||
|
|
||
|
#include <QskBox.h>
|
||
|
#include <QskBoxShapeMetrics.h>
|
||
|
#include <QskShadowMetrics.h>
|
||
|
|
||
|
class QskGradient;
|
||
|
|
||
|
class BlurredBox : public QskBox
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_PROPERTY( float blurDirections READ blurDirections WRITE setBlurDirections NOTIFY
|
||
|
blurDirectionsChanged )
|
||
|
Q_PROPERTY( float blurQuality READ blurQuality WRITE setBlurQuality NOTIFY blurQualityChanged )
|
||
|
Q_PROPERTY( float blurSize READ blurSize WRITE setBlurSize NOTIFY blurSizeChanged )
|
||
|
using Inherited = QskBox;
|
||
|
|
||
|
public:
|
||
|
QSK_SUBCONTROLS( Panel )
|
||
|
|
||
|
BlurredBox( QQuickItem* parent = nullptr );
|
||
|
~BlurredBox() override;
|
||
|
|
||
|
QRectF rectOnScreen() const;
|
||
|
QRectF rectOfScreen() const;
|
||
|
|
||
|
void geometryChangeEvent( QskGeometryChangeEvent* ) override;
|
||
|
|
||
|
float blurDirections() const;
|
||
|
void setBlurDirections( float newBlurDirections );
|
||
|
|
||
|
float blurQuality() const;
|
||
|
void setBlurQuality( float newBlurQuality );
|
||
|
|
||
|
float blurSize() const;
|
||
|
void setBlurSize( float newBlurSize );
|
||
|
|
||
|
Q_SIGNALS:
|
||
|
void blurDirectionsChanged( float );
|
||
|
void blurQualityChanged( float );
|
||
|
void blurSizeChanged( float );
|
||
|
|
||
|
private:
|
||
|
QskBoxShapeMetrics m_shape;
|
||
|
qreal m_borderWidth = 0.0;
|
||
|
QColor m_borderColor = Qt::black;
|
||
|
float m_blurDirections = 32.0;
|
||
|
float m_blurQuality = 8.0;
|
||
|
float m_blurSize = 8.0;
|
||
|
};
|