QmlMaterial 0.1.0
Loading...
Searching...
No Matches
card_state.hpp
1#pragma once
2#include "qml_material/style/button_interaction_state.hpp"
3#include "qml_material/core/enum.hpp"
4Q_MOC_INCLUDE("qml_material/control/button.hpp")
5namespace qml_material
6{
7class Button;
8class QML_MATERIAL_API CardState : public ButtonInteractionState {
9 Q_OBJECT
10 QML_NAMED_ELEMENT(StateCard)
11 Q_PROPERTY(qml_material::Button* item READ item WRITE setItem NOTIFY itemChanged FINAL)
12 Q_PROPERTY(int type READ type WRITE setType NOTIFY typeChanged BINDABLE bindableType FINAL)
13 Q_PROPERTY(
14 int radius READ radius WRITE setRadius NOTIFY radiusChanged BINDABLE bindableRadius FINAL)
15public:
16 explicit CardState(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 radius() const;
23 void setRadius(int);
24 QBindable<int> bindableRadius();
25 Q_SIGNAL void typeChanged();
26 Q_SIGNAL void radiusChanged();
27
28private:
29 qreal baseElevation() const;
30 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(CardState, int, m_type, 0, &CardState::typeChanged)
31 Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(CardState, int, m_radius, 12, &CardState::radiusChanged)
32 BindingLifetime m_bindingLifetime { bindingSet().lifetime() };
33};
34} // namespace qml_material