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(qint32 width READ width NOTIFY widthChanged FINAL)
12 Q_PROPERTY(qint32 column READ column NOTIFY columnChanged FINAL)
13 Q_PROPERTY(qint32 minimum READ minimum WRITE setMinimum NOTIFY minimumChanged FINAL)
14 Q_PROPERTY(qint32 leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged FINAL)
15 Q_PROPERTY(
16 qint32 rightMargin READ rightMargin WRITE setrightMargin NOTIFY rightMarginChanged FINAL)
17 Q_PROPERTY(qint32 spacing READ spacing WRITE setSpacing NOTIFY spacingChanged FINAL)
18 Q_PROPERTY(qint32 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 -> qint32;
25 Q_SIGNAL void widthChanged();
26
27 auto column() const noexcept -> qint32;
28 Q_SIGNAL void columnChanged();
29
30 auto leftMargin() const noexcept -> qint32;
31 void setLeftMargin(qint32);
32 Q_SIGNAL void leftMarginChanged();
33
34 auto rightMargin() const noexcept -> qint32;
35 void setrightMargin(qint32);
36 Q_SIGNAL void rightMarginChanged();
37
38 auto minimum() const noexcept -> qint32;
39 void setMinimum(qint32);
40 Q_SIGNAL void minimumChanged();
41
42 auto spacing() const noexcept -> qint32;
43 void setSpacing(qint32);
44 Q_SIGNAL void spacingChanged();
45
46 auto total() const noexcept -> qint32;
47 void setTotal(qint32);
48 Q_SIGNAL void totalChanged();
49
50 Q_SLOT void refresh();
51
52private:
53 qint32 m_column;
54 qint32 m_width;
55 qint32 m_total;
56 qint32 m_minimum;
57 qint32 m_spacing;
58 qint32 m_left_margin;
59 qint32 m_right_margin;
60};
61
62} // namespace qml_material