2#include "qml_material/style/button_interaction_state.hpp"
3Q_MOC_INCLUDE(
"qml_material/control/button.hpp")
7class QML_MATERIAL_API ChipState :
public ButtonInteractionState {
10 Q_PROPERTY(qml_material::Button* item READ item WRITE setItem NOTIFY itemChanged FINAL)
11 Q_PROPERTY(
bool elevated READ elevated WRITE setElevated NOTIFY elevatedChanged BINDABLE
12 bindableElevated FINAL)
16 void setItem(Button*);
17 bool elevated()
const;
18 void setElevated(
bool);
19 QBindable<bool> bindableElevated();
20 Q_SIGNAL
void elevatedChanged();
31 ChipState(Kind, QObject*);
32 QColor resolveIconColor(
bool leading)
const;
35 bool selected()
const;
36 QColor defaultTextColor()
const;
38 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(ChipState,
bool, m_elevated,
false,
39 &ChipState::elevatedChanged)
40 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };
42class QML_MATERIAL_API SingleIconChipState :
public ChipState {
45 Q_PROPERTY(QColor iconColor READ iconColor WRITE setIconColor RESET resetIconColor NOTIFY
46 iconColorChanged BINDABLE bindableIconColor FINAL)
49 QColor iconColor()
const;
50 void setIconColor(
const QColor&);
51 QBindable<QColor> bindableIconColor();
52 Q_INVOKABLE
void resetIconColor();
53 Q_SIGNAL
void iconColorChanged();
56 SingleIconChipState(Kind, QObject*);
59 Q_OBJECT_BINDABLE_PROPERTY(SingleIconChipState, QColor, m_iconColor,
60 &SingleIconChipState::iconColorChanged)
61 PropertyKey<QColor> m_iconKey;
62 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };
64class QML_MATERIAL_API DualIconChipState :
public ChipState {
67 Q_PROPERTY(QColor leadingIconColor READ leadingIconColor WRITE setLeadingIconColor RESET
68 resetLeadingIconColor NOTIFY leadingIconColorChanged BINDABLE
69 bindableLeadingIconColor FINAL)
70 Q_PROPERTY(QColor trailingIconColor READ trailingIconColor WRITE setTrailingIconColor RESET
71 resetTrailingIconColor NOTIFY trailingIconColorChanged BINDABLE
72 bindableTrailingIconColor FINAL)
75 QColor leadingIconColor()
const;
76 void setLeadingIconColor(
const QColor&);
77 QBindable<QColor> bindableLeadingIconColor();
78 Q_INVOKABLE
void resetLeadingIconColor();
79 Q_SIGNAL
void leadingIconColorChanged();
80 QColor trailingIconColor()
const;
81 void setTrailingIconColor(
const QColor&);
82 QBindable<QColor> bindableTrailingIconColor();
83 Q_INVOKABLE
void resetTrailingIconColor();
84 Q_SIGNAL
void trailingIconColorChanged();
87 DualIconChipState(Kind, QObject*);
90 Q_OBJECT_BINDABLE_PROPERTY(DualIconChipState, QColor, m_leadingIconColor,
91 &DualIconChipState::leadingIconColorChanged)
92 Q_OBJECT_BINDABLE_PROPERTY(DualIconChipState, QColor, m_trailingIconColor,
93 &DualIconChipState::trailingIconColorChanged)
94 PropertyKey<QColor> m_leadingIconKey, m_trailingIconKey;
95 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };
97class QML_MATERIAL_API AssistChipState :
public SingleIconChipState {
99 QML_NAMED_ELEMENT(StateAssistChip)
102 explicit AssistChipState(QObject* parent =
nullptr);
104class QML_MATERIAL_API SuggestionChipState :
public SingleIconChipState {
106 QML_NAMED_ELEMENT(StateSuggestionChip)
109 explicit SuggestionChipState(QObject* parent =
nullptr);
111class QML_MATERIAL_API FilterChipState :
public DualIconChipState {
113 QML_NAMED_ELEMENT(StateFilterChip)
116 explicit FilterChipState(QObject* parent =
nullptr);
118class QML_MATERIAL_API InputChipState :
public DualIconChipState {
120 QML_NAMED_ELEMENT(StateInputChip)
123 explicit InputChipState(QObject* parent =
nullptr);
125class QML_MATERIAL_API EmbedChipState :
public DualIconChipState {
127 QML_NAMED_ELEMENT(StateEmbedChip)
128 Q_PROPERTY(
int borderWidth READ borderWidth WRITE setBorderWidth NOTIFY borderWidthChanged
129 BINDABLE bindableBorderWidth FINAL)
132 explicit EmbedChipState(QObject* parent =
nullptr);
133 int borderWidth()
const;
134 void setBorderWidth(
int);
135 QBindable<int> bindableBorderWidth();
136 Q_SIGNAL
void borderWidthChanged();
139 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(EmbedChipState,
int, m_borderWidth, 0,
140 &EmbedChipState::borderWidthChanged)