QmlMaterial 0.1.0
Loading...
Searching...
No Matches
rail_item_state.hpp
1#pragma once
2#include "qml_material/style/button_interaction_state.hpp"
3Q_MOC_INCLUDE("qml_material/control/button.hpp")
4namespace qml_material
5{
6class Button;
7class QML_MATERIAL_API RailItemState : public ButtonInteractionState {
8 Q_OBJECT
9 QML_NAMED_ELEMENT(StateRailItem)
10 Q_PROPERTY(qml_material::Button* item READ item WRITE setItem NOTIFY itemChanged FINAL)
11 Q_PROPERTY(QColor collapsedLabelColor READ collapsedLabelColor NOTIFY collapsedLabelColorChanged
12 BINDABLE bindableCollapsedLabelColor FINAL)
13 Q_PROPERTY(QColor expandedLabelColor READ expandedLabelColor NOTIFY expandedLabelColorChanged
14 BINDABLE bindableExpandedLabelColor FINAL)
15public:
16 explicit RailItemState(QObject* parent = nullptr);
17 Button* item() const;
18 void setItem(Button*);
19 QColor collapsedLabelColor() const;
20 QColor expandedLabelColor() const;
21 QBindable<QColor> bindableCollapsedLabelColor() const;
22 QBindable<QColor> bindableExpandedLabelColor() const;
23 Q_SIGNAL void collapsedLabelColorChanged();
24 Q_SIGNAL void expandedLabelColorChanged();
25
26private:
27 Q_OBJECT_BINDABLE_PROPERTY(RailItemState, QColor, m_collapsedLabelColor,
28 &RailItemState::collapsedLabelColorChanged)
29 Q_OBJECT_BINDABLE_PROPERTY(RailItemState, QColor, m_expandedLabelColor,
30 &RailItemState::expandedLabelColorChanged)
31 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };
32};
33} // namespace qml_material