convenience methods for resetHint
This commit is contained in:
parent
06fe52de32
commit
1527f46d51
@ -55,7 +55,7 @@ void QskBox::setPadding( const QMarginsF& padding )
|
||||
|
||||
if ( pd != this->padding() )
|
||||
{
|
||||
const auto subControl = effectiveSubcontrol( QskBox::Panel );
|
||||
const auto subControl = effectiveSubcontrol( Panel );
|
||||
|
||||
setPaddingHint( subControl, pd );
|
||||
resetImplicitSize();
|
||||
@ -69,8 +69,7 @@ void QskBox::setPadding( const QMarginsF& padding )
|
||||
|
||||
void QskBox::resetPadding()
|
||||
{
|
||||
static auto aspectPadding = QskBox::Panel | QskAspect::Metric | QskAspect::Padding;
|
||||
if ( resetHint( aspectPadding ) )
|
||||
if ( resetPaddingHint( Panel ) )
|
||||
{
|
||||
resetImplicitSize();
|
||||
|
||||
@ -83,7 +82,7 @@ void QskBox::resetPadding()
|
||||
|
||||
QMarginsF QskBox::padding() const
|
||||
{
|
||||
return paddingHint( QskBox::Panel );
|
||||
return paddingHint( Panel );
|
||||
}
|
||||
|
||||
QRectF QskBox::layoutRectForSize( const QSizeF& size ) const
|
||||
|
@ -158,7 +158,7 @@ void QskControl::setBackground( const QskGradient& gradient )
|
||||
|
||||
void QskControl::resetBackground()
|
||||
{
|
||||
if ( resetHint( QskAspect::Control | QskAspect::Color ) )
|
||||
if ( resetColor( QskAspect::Control ) )
|
||||
{
|
||||
update();
|
||||
Q_EMIT backgroundChanged();
|
||||
@ -203,7 +203,7 @@ void QskControl::resetMargins()
|
||||
{
|
||||
using namespace QskAspect;
|
||||
|
||||
if ( resetHint( Control | Metric | Margin ) )
|
||||
if ( resetMarginHint( Control ) )
|
||||
{
|
||||
resetImplicitSize();
|
||||
|
||||
|
@ -211,6 +211,11 @@ void QskSkinnable::setAlignmentHint(
|
||||
setFlagHint( aspect | QskAspect::Alignment, alignment );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetAlignmentHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
return resetFlagHint( aspect | QskAspect::Alignment );
|
||||
}
|
||||
|
||||
void QskSkinnable::setColor( QskAspect::Aspect aspect, const QColor& color )
|
||||
{
|
||||
m_data->hintTable.setColor( aspect, color );
|
||||
@ -251,11 +256,17 @@ void QskSkinnable::setMarginHint( QskAspect::Aspect aspect, const QMarginsF& mar
|
||||
m_data->hintTable.setMargin( aspect, margins );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetMarginHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Margin;
|
||||
return resetHint( asp );
|
||||
}
|
||||
|
||||
QMarginsF QskSkinnable::marginHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
const auto aspectMargin = aspect | QskAspect::Metric | QskAspect::Margin;
|
||||
return effectiveHint( aspectMargin, status ).value< QskMargins >();
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Margin;
|
||||
return effectiveHint( asp, status ).value< QskMargins >();
|
||||
}
|
||||
|
||||
void QskSkinnable::setPaddingHint( QskAspect::Aspect aspect, qreal padding )
|
||||
@ -268,11 +279,17 @@ void QskSkinnable::setPaddingHint( QskAspect::Aspect aspect, const QMarginsF& pa
|
||||
m_data->hintTable.setPadding( aspect, padding );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetPaddingHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Padding;
|
||||
return resetHint( asp );
|
||||
}
|
||||
|
||||
QMarginsF QskSkinnable::paddingHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
const auto aspectPadding = aspect | QskAspect::Metric | QskAspect::Padding;
|
||||
return effectiveHint( aspectPadding, status ).value< QskMargins >();
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Padding;
|
||||
return effectiveHint( asp, status ).value< QskMargins >();
|
||||
}
|
||||
|
||||
void QskSkinnable::setGradientHint(
|
||||
@ -293,11 +310,17 @@ void QskSkinnable::setBoxShapeHint(
|
||||
m_data->hintTable.setBoxShape( aspect, shape );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetBoxShapeHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Shape;
|
||||
return resetHint( asp );
|
||||
}
|
||||
|
||||
QskBoxShapeMetrics QskSkinnable::boxShapeHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
using namespace QskAspect;
|
||||
return effectiveHint( aspect | Metric | Shape, status ).value< QskBoxShapeMetrics >();
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Shape;
|
||||
return effectiveHint( asp, status ).value< QskBoxShapeMetrics >();
|
||||
}
|
||||
|
||||
void QskSkinnable::setBoxBorderMetricsHint(
|
||||
@ -306,11 +329,17 @@ void QskSkinnable::setBoxBorderMetricsHint(
|
||||
m_data->hintTable.setBoxBorder( aspect, border );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetBoxBorderMetricsHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Border;
|
||||
return resetHint( asp );
|
||||
}
|
||||
|
||||
QskBoxBorderMetrics QskSkinnable::boxBorderMetricsHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
using namespace QskAspect;
|
||||
return effectiveHint( aspect | Metric | Border, status ).value< QskBoxBorderMetrics >();
|
||||
const auto asp = aspect | QskAspect::Metric | QskAspect::Border;
|
||||
return effectiveHint( asp, status ).value< QskBoxBorderMetrics >();
|
||||
}
|
||||
|
||||
void QskSkinnable::setBoxBorderColorsHint(
|
||||
@ -319,11 +348,17 @@ void QskSkinnable::setBoxBorderColorsHint(
|
||||
m_data->hintTable.setBoxBorderColors( aspect, colors );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetBoxBorderColorsHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
const auto asp = aspect | QskAspect::Color | QskAspect::Border;
|
||||
return resetHint( asp );
|
||||
}
|
||||
|
||||
QskBoxBorderColors QskSkinnable::boxBorderColorsHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
using namespace QskAspect;
|
||||
return effectiveHint( aspect | Color | Border, status ).value< QskBoxBorderColors >();
|
||||
const auto asp = aspect | QskAspect::Color | QskAspect::Border;
|
||||
return effectiveHint( asp, status ).value< QskBoxBorderColors >();
|
||||
}
|
||||
|
||||
void QskSkinnable::setIntervalHint(
|
||||
@ -335,7 +370,8 @@ void QskSkinnable::setIntervalHint(
|
||||
QskIntervalF QskSkinnable::intervalHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
return effectiveHint( aspect | QskAspect::Metric, status ).value< QskIntervalF >();
|
||||
const auto hint = effectiveHint( aspect | QskAspect::Metric, status );
|
||||
return hint.value< QskIntervalF >();
|
||||
}
|
||||
|
||||
void QskSkinnable::setSpacingHint( QskAspect::Aspect aspect, qreal spacing )
|
||||
@ -343,6 +379,11 @@ void QskSkinnable::setSpacingHint( QskAspect::Aspect aspect, qreal spacing )
|
||||
m_data->hintTable.setSpacing( aspect, spacing );
|
||||
}
|
||||
|
||||
bool QskSkinnable::resetSpacingHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
return resetMetric( aspect | QskAspect::Spacing );
|
||||
}
|
||||
|
||||
qreal QskSkinnable::spacingHint(
|
||||
QskAspect::Aspect aspect, QskSkinHintStatus* status ) const
|
||||
{
|
||||
@ -717,8 +758,6 @@ const char* QskSkinnable::skinStateAsPrintable( QskAspect::State state ) const
|
||||
static inline QMarginsF qskEffectivePadding( const QskSkinnable* skinnable,
|
||||
QskAspect::Aspect aspect, const QSizeF& size, bool inner )
|
||||
{
|
||||
using namespace QskAspect;
|
||||
|
||||
const auto shape = skinnable->boxShapeHint( aspect ).toAbsolute( size );
|
||||
const auto borderMetrics = skinnable->boxBorderMetricsHint( aspect );
|
||||
|
||||
|
@ -79,45 +79,53 @@ class QSK_EXPORT QskSkinnable
|
||||
void setColor( QskAspect::Aspect, Qt::GlobalColor );
|
||||
void setColor( QskAspect::Aspect, QRgb );
|
||||
void setColor( QskAspect::Aspect, const QColor& );
|
||||
|
||||
bool resetColor( QskAspect::Aspect );
|
||||
QColor color( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setMetric( QskAspect::Aspect, qreal metric );
|
||||
bool resetMetric( QskAspect::Aspect );
|
||||
qreal metric( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setFlagHint( QskAspect::Aspect, int flag );
|
||||
bool resetFlagHint( QskAspect::Aspect );
|
||||
int flagHint( QskAspect::Aspect ) const;
|
||||
template< typename T > T flagHint( QskAspect::Aspect, T = T() ) const;
|
||||
|
||||
void setMarginHint( QskAspect::Aspect, qreal );
|
||||
void setMarginHint( QskAspect::Aspect, const QMarginsF& );
|
||||
bool resetMarginHint( QskAspect::Aspect );
|
||||
QMarginsF marginHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setPaddingHint( QskAspect::Aspect, qreal );
|
||||
void setPaddingHint( QskAspect::Aspect, const QMarginsF& );
|
||||
bool resetPaddingHint( QskAspect::Aspect );
|
||||
QMarginsF paddingHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setGradientHint( QskAspect::Aspect, const QskGradient& );
|
||||
QskGradient gradientHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setBoxShapeHint( QskAspect::Aspect, const QskBoxShapeMetrics& );
|
||||
bool resetBoxShapeHint( QskAspect::Aspect );
|
||||
QskBoxShapeMetrics boxShapeHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setBoxBorderMetricsHint( QskAspect::Aspect, const QskBoxBorderMetrics& );
|
||||
bool resetBoxBorderMetricsHint( QskAspect::Aspect );
|
||||
QskBoxBorderMetrics boxBorderMetricsHint(
|
||||
QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setBoxBorderColorsHint( QskAspect::Aspect, const QskBoxBorderColors& );
|
||||
bool resetBoxBorderColorsHint( QskAspect::Aspect );
|
||||
QskBoxBorderColors boxBorderColorsHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setIntervalHint( QskAspect::Aspect, const QskIntervalF& );
|
||||
QskIntervalF intervalHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setSpacingHint( QskAspect::Aspect, qreal );
|
||||
bool resetSpacingHint( QskAspect::Aspect );
|
||||
qreal spacingHint( QskAspect::Aspect, QskSkinHintStatus* = nullptr ) const;
|
||||
|
||||
void setFlagHint( QskAspect::Aspect, int flag );
|
||||
int flagHint( QskAspect::Aspect ) const;
|
||||
|
||||
template< typename T > T flagHint( QskAspect::Aspect, T = T() ) const;
|
||||
|
||||
void setAlignmentHint( QskAspect::Aspect, Qt::Alignment );
|
||||
bool resetAlignmentHint( QskAspect::Aspect );
|
||||
Qt::Alignment alignmentHint( QskAspect::Aspect, Qt::Alignment = Qt::Alignment() ) const;
|
||||
|
||||
void setFontRole( QskAspect::Aspect, int role );
|
||||
@ -213,4 +221,19 @@ inline QskAspect::Placement QskSkinnable::effectivePlacement() const
|
||||
return QskAspect::NoPlacement;
|
||||
}
|
||||
|
||||
inline bool QskSkinnable::resetColor( QskAspect::Aspect aspect )
|
||||
{
|
||||
return resetHint( aspect | QskAspect::Color );
|
||||
}
|
||||
|
||||
inline bool QskSkinnable::resetMetric( QskAspect::Aspect aspect )
|
||||
{
|
||||
return resetHint( aspect | QskAspect::Metric );
|
||||
}
|
||||
|
||||
inline bool QskSkinnable::resetFlagHint( QskAspect::Aspect aspect )
|
||||
{
|
||||
return resetHint( aspect | QskAspect::Flag );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user