QmlMaterial 0.1.0
Loading...
Searching...
No Matches
fab_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 FABState : public ButtonInteractionState {
8 Q_OBJECT
9 QML_NAMED_ELEMENT(StateFAB)
10 Q_PROPERTY(qml_material::Button* item READ item WRITE setItem NOTIFY itemChanged FINAL)
11 Q_PROPERTY(int type READ type WRITE setType NOTIFY typeChanged BINDABLE bindableType FINAL)
12 Q_PROPERTY(int color READ color WRITE setColor NOTIFY colorChanged BINDABLE bindableColor FINAL)
13 Q_PROPERTY(qml_material::token::Shape shapeTokens READ shapeTokens WRITE setShapeTokens NOTIFY
14 shapeTokensChanged BINDABLE bindableShapeTokens FINAL)
15public:
16 explicit FABState(QObject* parent = nullptr);
17 Button* item() const;
18 void setItem(Button*);
19 int type() const;
20 void setType(int);
21 QBindable<int> bindableType();
22 int color() const;
23 void setColor(int);
24 QBindable<int> bindableColor();
25 token::Shape shapeTokens() const;
26 void setShapeTokens(const token::Shape&);
27 QBindable<token::Shape> bindableShapeTokens();
28 Q_SIGNAL void typeChanged();
29 Q_SIGNAL void colorChanged();
30 Q_SIGNAL void shapeTokensChanged();
31
32private:
33 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(FABState, int, m_type, 1, &FABState::typeChanged)
34 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(FABState, int, m_color, 0, &FABState::colorChanged)
35 Q_OBJECT_BINDABLE_PROPERTY(FABState, token::Shape, m_shapeTokens, &FABState::shapeTokensChanged)
36 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };
37};
38} // namespace qml_material
Container for shape-related styling properties.
Definition token.hpp:226