qskinny/src/controls/QskBox.h

77 lines
2.1 KiB
C
Raw Normal View History

2017-07-21 16:21:34 +00:00
/******************************************************************************
2024-01-17 13:31:45 +00:00
* QSkinny - Copyright (C) The authors
2023-04-06 07:23:37 +00:00
* SPDX-License-Identifier: BSD-3-Clause
2017-07-21 16:21:34 +00:00
*****************************************************************************/
#ifndef QSK_BOX_H
#define QSK_BOX_H
#include "QskControl.h"
class QSK_EXPORT QskBox : public QskControl
{
Q_OBJECT
using Inherited = QskControl;
2019-05-10 05:44:13 +00:00
Q_PROPERTY( bool panel READ hasPanel
WRITE setPanel NOTIFY panelChanged FINAL )
2023-04-20 11:30:41 +00:00
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
2019-09-20 05:04:17 +00:00
WRITE setPadding RESET resetPadding NOTIFY paddingChanged )
2018-08-03 06:15:28 +00:00
public:
2017-07-21 16:21:34 +00:00
QSK_SUBCONTROLS( Panel )
QskBox( QQuickItem* parent = nullptr );
2019-05-10 05:44:13 +00:00
QskBox( bool hasPanel, QQuickItem* parent = nullptr );
2018-07-31 15:32:25 +00:00
~QskBox() override;
2017-07-21 16:21:34 +00:00
2019-05-10 05:44:13 +00:00
void setPanel( bool );
bool hasPanel() const;
2019-09-05 13:16:33 +00:00
2023-04-20 11:30:41 +00:00
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();
2019-09-20 05:04:17 +00:00
void setPadding( qreal );
void setPadding( const QMarginsF& );
void resetPadding();
QMarginsF padding() const;
QRectF layoutRectForSize( const QSizeF& ) const override;
2019-05-10 05:44:13 +00:00
Q_SIGNALS:
void panelChanged( bool );
2023-04-20 11:30:41 +00:00
void borderMetricsChanged( const QskBoxBorderMetrics& );
void borderColorsChanged( const QskBoxBorderColors& );
void fillGradientChanged( const QskGradient& );
2019-09-20 05:04:17 +00:00
void paddingChanged( const QMarginsF& );
2019-05-10 05:44:13 +00:00
private:
bool m_hasPanel;
2017-07-21 16:21:34 +00:00
};
#endif