QmlMaterial 0.1.0
Loading...
Searching...
No Matches
width_provider.hpp
1#pragma once
2#include <QtQml/QQmlEngine>
3
4namespace qml_material
5{
6
7class WidthProvider : public QObject {
8 Q_OBJECT
9 QML_ELEMENT
10
11 Q_PROPERTY(double width READ width NOTIFY widthChanged FINAL)
12 Q_PROPERTY(qint32 column READ column NOTIFY columnChanged FINAL)
13 Q_PROPERTY(double minimum READ minimum WRITE setMinimum NOTIFY minimumChanged FINAL)
14 Q_PROPERTY(double leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged FINAL)
15 Q_PROPERTY(
16 double rightMargin READ rightMargin WRITE setrightMargin NOTIFY rightMarginChanged FINAL)
17 Q_PROPERTY(double spacing READ spacing WRITE setSpacing NOTIFY spacingChanged FINAL)
18 Q_PROPERTY(double total READ total WRITE setTotal NOTIFY totalChanged FINAL)
19public:
20 explicit WidthProvider(QObject* parent = nullptr);
21
22 Q_INVOKABLE qint32 calculateX(qint32 column) noexcept;
23
24 auto width() const noexcept -> double;
25 Q_SIGNAL void widthChanged();
26
27 auto column() const noexcept -> qint32;
28 Q_SIGNAL void columnChanged();
29
30 auto leftMargin() const noexcept -> double;
31 void setLeftMargin(double);
32 Q_SIGNAL void leftMarginChanged();
33
34 auto rightMargin() const noexcept -> double;
35 void setrightMargin(double);
36 Q_SIGNAL void rightMarginChanged();
37
38 auto minimum() const noexcept -> double;
39 void setMinimum(double);
40 Q_SIGNAL void minimumChanged();
41
42 auto spacing() const noexcept -> double;
43 void setSpacing(double);
44 Q_SIGNAL void spacingChanged();
45
46 auto total() const noexcept -> double;
47 void setTotal(double);
48 Q_SIGNAL void totalChanged();
49
50 Q_SLOT void refresh();
51
52private:
53 qint32 m_column;
54 double m_width;
55 double m_total;
56 double m_minimum;
57 double m_spacing;
58 double m_left_margin;
59 double m_right_margin;
60};
61
62} // namespace qml_material