QskShadowMetrics added to QskSkinHintTableEditor

This commit is contained in:
Uwe Rathmann 2022-06-13 08:43:28 +02:00
parent 167965e12c
commit f03007e7b8
3 changed files with 58 additions and 5 deletions

View File

@ -27,8 +27,10 @@ class QSK_EXPORT QskShadowMetrics
public:
constexpr QskShadowMetrics( const QPointF& offset = QPointF() ) noexcept;
constexpr QskShadowMetrics( qreal spreadRadius, qreal blurRadius ) noexcept;
constexpr QskShadowMetrics( qreal spreadRadius, qreal blurRadius,
const QPointF& offset = QPointF() ) noexcept;
const QPointF& offset, Qt::SizeMode = Qt::AbsoluteSize ) noexcept;
constexpr bool operator==( const QskShadowMetrics& ) const noexcept;
constexpr bool operator!=( const QskShadowMetrics& ) const noexcept;
@ -74,10 +76,19 @@ inline constexpr QskShadowMetrics::QskShadowMetrics( const QPointF& offset ) noe
}
inline constexpr QskShadowMetrics::QskShadowMetrics(
qreal spreadRadius, qreal blurRadius, const QPointF& offset ) noexcept
qreal spreadRadius, qreal blurRadius ) noexcept
: m_spreadRadius( spreadRadius )
, m_blurRadius( blurRadius )
{
}
inline constexpr QskShadowMetrics::QskShadowMetrics(
qreal spreadRadius, qreal blurRadius,
const QPointF& offset, Qt::SizeMode sizeMode ) noexcept
: m_offset( offset )
, m_spreadRadius( spreadRadius )
, m_blurRadius( blurRadius )
, m_sizeMode( sizeMode )
{
}

View File

@ -11,6 +11,7 @@
#include "QskBoxShapeMetrics.h"
#include "QskBoxBorderMetrics.h"
#include "QskBoxBorderColors.h"
#include "QskShadowMetrics.h"
#include "QskGradient.h"
namespace
@ -114,6 +115,11 @@ namespace
{
return aspect | QskAspect::Border;
}
inline QskAspect aspectShadow( QskAspect aspect )
{
return aspect | QskAspect::Shadow;
}
}
QskSkinHintTableEditor::QskSkinHintTableEditor( QskSkinHintTable* table )
@ -471,13 +477,12 @@ void QskSkinHintTableEditor::setBoxBorderColors(
setColorHint( aspectBorder( aspect ), borderColors, combination );
}
void QskSkinHintTableEditor::setBoxBorderColors(QskAspect aspect,
void QskSkinHintTableEditor::setBoxBorderColors( QskAspect aspect,
const QskGradient& left, const QskGradient& top, const QskGradient& right,
const QskGradient& bottom, QskStateCombination combination )
{
setColorHint( aspectBorder( aspect ),
QskBoxBorderColors( left, top, right, bottom ),
combination );
QskBoxBorderColors( left, top, right, bottom ), combination );
}
bool QskSkinHintTableEditor::removeBoxBorderColors(
@ -491,6 +496,30 @@ QskBoxBorderColors QskSkinHintTableEditor::boxBorderColors( QskAspect aspect ) c
return colorHint< QskBoxBorderColors >( aspectBorder( aspect ) );
}
void QskSkinHintTableEditor::setShadowMetrics( QskAspect aspect,
qreal spreadRadius, qreal blurRadius, const QPointF& offset, Qt::SizeMode sizeMode )
{
setMetricHint( aspectShadow( aspect ),
QskShadowMetrics( spreadRadius, blurRadius, offset, sizeMode ) );
}
void QskSkinHintTableEditor::setShadowMetrics( QskAspect aspect,
const QskShadowMetrics& metrics, QskStateCombination combination )
{
setMetricHint( aspectShadow( aspect ), metrics, combination );
}
bool QskSkinHintTableEditor::removeShadowMetric(
QskAspect aspect, QskStateCombination combination )
{
return removeMetricHint( aspectShadow( aspect ), combination );
}
QskShadowMetrics QskSkinHintTableEditor::shadowMetrics( QskAspect aspect ) const
{
return metricHint< QskShadowMetrics >( aspectShadow( aspect ) );
}
void QskSkinHintTableEditor::setArcMetrics( QskAspect aspect, qreal width,
qreal startAngle, qreal spanAngle, Qt::SizeMode sizeMode )
{

View File

@ -20,6 +20,7 @@ class QskGradient;
class QskBoxShapeMetrics;
class QskBoxBorderMetrics;
class QskBoxBorderColors;
class QskShadowMetrics;
class QSK_EXPORT QskSkinHintTableEditor
{
@ -234,6 +235,18 @@ class QSK_EXPORT QskSkinHintTableEditor
bool removeBoxBorderColors( QskAspect, QskStateCombination = QskStateCombination() );
QskBoxBorderColors boxBorderColors( QskAspect ) const;
// shadowMetrics
void setShadowMetrics( QskAspect, qreal, qreal,
const QPointF&, Qt::SizeMode = Qt::AbsoluteSize );
void setShadowMetrics( QskAspect, const QskShadowMetrics&,
QskStateCombination = QskStateCombination() );
bool removeShadowMetric( QskAspect, QskStateCombination = QskStateCombination() );
QskShadowMetrics shadowMetrics( QskAspect ) const;
// arcMetrics
void setArcMetrics( QskAspect, qreal, qreal, qreal, Qt::SizeMode = Qt::AbsoluteSize );