2#include "qml_material/style/button_interaction_state.hpp"
3Q_MOC_INCLUDE(
"qml_material/control/button.hpp")
7class QML_MATERIAL_API MenuItemState :
public ButtonInteractionState {
9 QML_NAMED_ELEMENT(StateMenuItem)
10 Q_PROPERTY(qml_material::Button* item READ item WRITE setItem NOTIFY itemChanged FINAL)
11 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectedChanged BINDABLE
12 bindableSelected FINAL)
13 Q_PROPERTY(QColor leadingIconColor READ leadingIconColor WRITE setLeadingIconColor RESET
14 resetLeadingIconColor NOTIFY leadingIconColorChanged BINDABLE
15 bindableLeadingIconColor FINAL)
16 Q_PROPERTY(QColor trailingIconColor READ trailingIconColor WRITE setTrailingIconColor RESET
17 resetTrailingIconColor NOTIFY trailingIconColorChanged BINDABLE
18 bindableTrailingIconColor FINAL)
20 explicit MenuItemState(QObject* parent =
nullptr);
22 void setItem(Button*);
23 bool selected()
const;
24 void setSelected(
bool);
25 QBindable<bool> bindableSelected();
26 QColor leadingIconColor()
const;
27 void setLeadingIconColor(
const QColor&);
28 Q_INVOKABLE
void resetLeadingIconColor();
29 QBindable<QColor> bindableLeadingIconColor();
30 QColor trailingIconColor()
const;
31 void setTrailingIconColor(
const QColor&);
32 Q_INVOKABLE
void resetTrailingIconColor();
33 QBindable<QColor> bindableTrailingIconColor();
34 Q_SIGNAL
void selectedChanged();
35 Q_SIGNAL
void leadingIconColorChanged();
36 Q_SIGNAL
void trailingIconColorChanged();
39 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(MenuItemState,
bool, m_selected,
false,
40 &MenuItemState::selectedChanged)
41 Q_OBJECT_BINDABLE_PROPERTY(MenuItemState, QColor, m_leadingIconColor,
42 &MenuItemState::leadingIconColorChanged)
43 Q_OBJECT_BINDABLE_PROPERTY(MenuItemState, QColor, m_trailingIconColor,
44 &MenuItemState::trailingIconColorChanged)
45 PropertyKey<QColor> m_leadingKey, m_trailingKey;
46 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };