qskinny/src/controls/QskCheckBoxSkinlet.h

53 lines
1.3 KiB
C
Raw Normal View History

/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#ifndef QSK_CHECK_BOX_SKINLET_H
#define QSK_CHECK_BOX_SKINLET_H
#include "QskSkinlet.h"
class QskCheckBox;
class QSK_EXPORT QskCheckBoxSkinlet : public QskSkinlet
{
Q_GADGET
using Inherited = QskSkinlet;
public:
enum NodeRole
{
2022-04-05 10:15:08 +02:00
PanelRole,
BoxRole,
2022-04-05 10:15:08 +02:00
IndicatorRole,
TextRole,
RippleRole,
RoleCount
};
Q_INVOKABLE QskCheckBoxSkinlet( QskSkin* = nullptr );
~QskCheckBoxSkinlet() override;
QRectF subControlRect( const QskSkinnable*,
const QRectF&, QskAspect::Subcontrol ) const override;
QSizeF sizeHint( const QskSkinnable*,
Qt::SizeHint, const QSizeF& ) const override;
protected:
QSGNode* updateSubNode( const QskSkinnable*,
quint8 nodeRole, QSGNode* ) const override;
private:
QRectF textRect( const QskCheckBox*, const QRectF& ) const;
QRectF boxRect( const QskCheckBox*, const QRectF& ) const;
QRectF rippleRect( const QskCheckBox*, const QRectF& ) const;
2022-09-13 12:22:20 +02:00
QSGNode* updateTextNode( const QskCheckBox*, QSGNode* ) const;
};
#endif