diff --git a/src/controls/QskBox.cpp b/src/controls/QskBox.cpp index 88e56315..242a6db8 100644 --- a/src/controls/QskBox.cpp +++ b/src/controls/QskBox.cpp @@ -5,6 +5,9 @@ #include "QskBox.h" #include "QskMargins.h" +#include "QskBoxBorderMetrics.h" +#include "QskBoxBorderColors.h" +#include "QskGradient.h" QSK_SUBCONTROL( QskBox, Panel ) @@ -40,6 +43,57 @@ bool QskBox::hasPanel() const return m_hasPanel; } +QskBoxBorderMetrics QskBox::borderMetrics() const +{ + return boxBorderMetricsHint( Panel ); +} + +void QskBox::setBorderMetrics( const QskBoxBorderMetrics& metrics ) +{ + if ( setBoxBorderMetricsHint( Panel, metrics ) ) + Q_EMIT borderMetricsChanged( borderMetrics() ); +} + +void QskBox::resetBorderMetrics() +{ + if ( resetBoxBorderMetricsHint( Panel ) ) + Q_EMIT borderMetricsChanged( borderMetrics() ); +} + +QskBoxBorderColors QskBox::borderColors() const +{ + return boxBorderColorsHint( Panel ); +} + +void QskBox::setBorderColors( const QskBoxBorderColors& colors ) +{ + if ( setBoxBorderColorsHint( Panel, colors ) ) + Q_EMIT borderColorsChanged( borderColors() ); +} + +void QskBox::resetBorderColors() +{ + if ( resetBoxBorderColorsHint( Panel ) ) + Q_EMIT borderColorsChanged( borderColors() ); +} + +QskGradient QskBox::fillGradient() const +{ + return gradientHint( Panel ); +} + +void QskBox::setFillGradient( const QskGradient& gradient ) +{ + if ( setGradientHint( Panel, gradient ) ) + Q_EMIT fillGradientChanged( gradient ); +} + +void QskBox::resetFillGradient() +{ + if ( resetColor( Panel ) ) + Q_EMIT fillGradientChanged( fillGradient() ); +} + void QskBox::setPadding( qreal padding ) { setPadding( QskMargins( padding ) ); diff --git a/src/controls/QskBox.h b/src/controls/QskBox.h index 15ffd51e..296654e9 100644 --- a/src/controls/QskBox.h +++ b/src/controls/QskBox.h @@ -17,6 +17,18 @@ class QSK_EXPORT QskBox : public QskControl Q_PROPERTY( bool panel READ hasPanel WRITE setPanel NOTIFY panelChanged FINAL ) + Q_PROPERTY( QskBoxBorderMetrics borderMetrics READ borderMetrics + WRITE setBorderMetrics RESET resetBorderMetrics + NOTIFY borderMetricsChanged ) + + Q_PROPERTY( QskBoxBorderColors borderColors READ borderColors + WRITE setBorderColors RESET resetBorderColors + NOTIFY borderColorsChanged ) + + Q_PROPERTY( QskGradient setFillGradient READ fillGradient + WRITE setFillGradient RESET resetFillGradient + NOTIFY fillGradientChanged ) + Q_PROPERTY( QskMargins padding READ padding WRITE setPadding RESET resetPadding NOTIFY paddingChanged ) @@ -31,6 +43,18 @@ class QSK_EXPORT QskBox : public QskControl void setPanel( bool ); bool hasPanel() const; + QskBoxBorderMetrics borderMetrics() const; + void setBorderMetrics( const QskBoxBorderMetrics& ); + void resetBorderMetrics(); + + QskBoxBorderColors borderColors() const; + void setBorderColors( const QskBoxBorderColors& ); + void resetBorderColors(); + + QskGradient fillGradient() const; + void setFillGradient( const QskGradient& ); + void resetFillGradient(); + void setPadding( qreal ); void setPadding( const QMarginsF& ); void resetPadding(); @@ -40,6 +64,9 @@ class QSK_EXPORT QskBox : public QskControl Q_SIGNALS: void panelChanged( bool ); + void borderMetricsChanged( const QskBoxBorderMetrics& ); + void borderColorsChanged( const QskBoxBorderColors& ); + void fillGradientChanged( const QskGradient& ); void paddingChanged( const QMarginsF& ); private: