72 lines
1.5 KiB
C
Raw Normal View History

2017-07-21 18:21:34 +02:00
/******************************************************************************
2024-01-17 14:31:45 +01:00
* QSkinny - Copyright (C) The authors
2023-04-06 09:23:37 +02:00
* SPDX-License-Identifier: BSD-3-Clause
2017-07-21 18:21:34 +02:00
*****************************************************************************/
2021-08-04 10:11:12 +02:00
#pragma once
2017-07-21 18:21:34 +02:00
#include "QskControl.h"
class QskBoxRectangleNode;
2017-07-21 18:21:34 +02:00
2019-09-23 13:12:00 +02:00
class Frame : public QskControl
2017-07-21 18:21:34 +02:00
{
Q_OBJECT
Q_PROPERTY( Style style READ style WRITE setStyle NOTIFY styleChanged FINAL )
Q_PROPERTY( qreal frameWidth READ frameWidth
WRITE setFrameWidth NOTIFY frameWidthChanged FINAL )
Q_PROPERTY( qreal radius READ radius
WRITE setRadius NOTIFY radiusChanged )
Q_PROPERTY( QColor color READ color
WRITE setColor NOTIFY colorChanged )
using Inherited = QskControl;
2018-08-03 08:15:28 +02:00
public:
2017-07-21 18:21:34 +02:00
enum Style
{
Plain,
Raised,
Sunken
};
Q_ENUM( Style )
Frame( QQuickItem* parent = nullptr );
2018-07-31 17:32:25 +02:00
~Frame() override;
2017-07-21 18:21:34 +02:00
void setStyle( Style );
Style style() const;
void setFrameWidth( qreal );
qreal frameWidth() const;
// Qt::RelativeSize: a percentage in the range [0-100]
void setRadius( qreal );
qreal radius() const;
void setColor( const QColor& );
QColor color() const;
2018-08-03 08:15:28 +02:00
Q_SIGNALS:
2017-07-21 18:21:34 +02:00
void styleChanged();
void frameWidthChanged();
void radiusChanged();
void colorChanged();
2018-08-03 08:15:28 +02:00
protected:
2018-07-31 17:32:25 +02:00
void updateNode( QSGNode* ) override;
2017-07-21 18:21:34 +02:00
2018-08-03 08:15:28 +02:00
private:
void updateFrameNode( const QRectF&, QskBoxRectangleNode* );
2017-07-21 18:21:34 +02:00
Style m_style;
QColor m_color;
qreal m_frameWidth;
qreal m_radius;
};