77 lines
2.2 KiB
C++
77 lines
2.2 KiB
C++
/******************************************************************************
|
|
* QSkinny - Copyright (C) 2016 Uwe Rathmann
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*****************************************************************************/
|
|
|
|
#ifndef QSK_BOX_H
|
|
#define QSK_BOX_H
|
|
|
|
#include "QskControl.h"
|
|
|
|
class QSK_EXPORT QskBox : public QskControl
|
|
{
|
|
Q_OBJECT
|
|
|
|
using Inherited = 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 )
|
|
|
|
public:
|
|
QSK_SUBCONTROLS( Panel )
|
|
|
|
QskBox( QQuickItem* parent = nullptr );
|
|
QskBox( bool hasPanel, QQuickItem* parent = nullptr );
|
|
|
|
~QskBox() override;
|
|
|
|
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();
|
|
QMarginsF padding() const;
|
|
|
|
QRectF layoutRectForSize( const QSizeF& ) const override;
|
|
|
|
Q_SIGNALS:
|
|
void panelChanged( bool );
|
|
void borderMetricsChanged( const QskBoxBorderMetrics& );
|
|
void borderColorsChanged( const QskBoxBorderColors& );
|
|
void fillGradientChanged( const QskGradient& );
|
|
void paddingChanged( const QMarginsF& );
|
|
|
|
private:
|
|
bool m_hasPanel;
|
|
};
|
|
|
|
#endif
|