4#include "qml_material/control/abstract_button.hpp"
8class QML_MATERIAL_API CheckBox :
public AbstractButton {
10 QML_NAMED_ELEMENT(CheckBoxBase)
11 Q_PROPERTY(
bool tristate READ isTristate WRITE setTristate NOTIFY tristateChanged BINDABLE
12 bindableTristate FINAL)
13 Q_PROPERTY(Qt::CheckState checkState READ checkState WRITE setCheckState NOTIFY
14 checkStateChanged FINAL)
15 Q_PROPERTY(QJSValue nextCheckState READ nextCheckStateCallback WRITE setNextCheckStateCallback
16 NOTIFY nextCheckStateChanged FINAL)
18 explicit CheckBox(QQuickItem* parent =
nullptr);
19 bool isTristate()
const {
return m_tristate; }
20 void setTristate(
bool);
21 QBindable<bool> bindableTristate() {
return QBindable<bool>(&m_tristate); }
22 Qt::CheckState checkState()
const {
return m_state; }
23 void setCheckState(Qt::CheckState);
24 QJSValue nextCheckStateCallback()
const {
return m_callback; }
25 void setNextCheckStateCallback(
const QJSValue&);
26 Q_SIGNAL
void tristateChanged();
27 Q_SIGNAL
void checkStateChanged();
28 Q_SIGNAL
void nextCheckStateChanged();
31 void nextCheckState()
override;
34 Q_OBJECT_BINDABLE_PROPERTY(CheckBox,
bool, m_tristate, &CheckBox::tristateChanged)
35 bool m_syncing =
false;
36 Qt::CheckState m_state = Qt::Unchecked;