2#include "qml_material/style/common_state.hpp"
6class QML_MATERIAL_API CarouselItemState :
public CommonState {
8 QML_NAMED_ELEMENT(StateCarouselItem)
9 Q_PROPERTY(QQuickItem* item READ item WRITE setItem NOTIFY itemChanged FINAL)
10 Q_PROPERTY(
bool down READ down WRITE setDown NOTIFY downChanged BINDABLE bindableDown)
12 bool hovered READ hovered WRITE setHovered NOTIFY hoveredChanged BINDABLE bindableHovered)
14 explicit CarouselItemState(QObject* parent =
nullptr);
15 ~CarouselItemState()
override;
16 QQuickItem* item()
const;
17 void setItem(QQuickItem*);
18 Q_SIGNAL
void itemChanged();
21 QBindable<bool> bindableDown();
22 Q_SIGNAL
void downChanged();
24 void setHovered(
bool);
25 QBindable<bool> bindableHovered();
26 Q_SIGNAL
void hoveredChanged();
29 enum class Interaction
37 Interaction state = Interaction::Base;
38 quint64 generation = 0;
39 bool operator==(
const Selection&)
const =
default;
41 void selectionChanged();
42 StateBindingSet<Interaction> m_bindings { Interaction::Base };
43 QProperty<bool> m_disabled {
false };
44 QMetaObject::Connection m_enabledConnection;
46 Q_OBJECT_BINDABLE_PROPERTY(CarouselItemState, Selection, m_selection,
47 &CarouselItemState::selectionChanged)
48 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(CarouselItemState,
bool, m_down,
false,
49 &CarouselItemState::downChanged)
50 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(CarouselItemState,
bool, m_hovered,
false,
51 &CarouselItemState::hoveredChanged)
52 StateBindingSet<Interaction>::Lifetime m_lifetime { m_bindings.lifetime() };