QmlMaterial 0.1.0
Loading...
Searching...
No Matches
button.hpp
1#pragma once
2
3#include <QtQml/QQmlEngine>
4#include "qml_material/core.hpp"
5#include "qml_material/export.hpp"
6
7namespace qml_material::token
8{
9
14 Q_GADGET_EXPORT(QML_MATERIAL_API)
15 QML_ELEMENT
16 QML_VALUE_TYPE(button_size_item)
17
18
19 Q_PROPERTY(qreal container_height MEMBER container_height CONSTANT FINAL)
21 Q_PROPERTY(qreal corner_size MEMBER corner_size CONSTANT FINAL)
23 Q_PROPERTY(qreal pressed_corner_size MEMBER pressed_corner_size CONSTANT FINAL)
25 Q_PROPERTY(qreal icon_size MEMBER icon_size CONSTANT FINAL)
27 Q_PROPERTY(qreal leading_space MEMBER leading_space CONSTANT FINAL)
29 Q_PROPERTY(qreal trailing_space MEMBER trailing_space CONSTANT FINAL)
31 Q_PROPERTY(qreal spacing MEMBER spacing CONSTANT FINAL)
32
33public:
34 bool operator==(const ButtonSizeItem&) const = default;
35 qreal container_height;
36 qreal corner_size;
38 qreal icon_size;
39 qreal leading_space;
40 qreal trailing_space;
41 qreal spacing;
42};
43
47struct ButtonSize {
48 Q_GADGET_EXPORT(QML_MATERIAL_API)
49 QML_ELEMENT
50 QML_VALUE_TYPE(button_size)
51
52 Q_PROPERTY(qml_material::token::ButtonSizeItem xsmall MEMBER xsmall CONSTANT FINAL)
53 Q_PROPERTY(qml_material::token::ButtonSizeItem small MEMBER small CONSTANT FINAL)
54 Q_PROPERTY(qml_material::token::ButtonSizeItem medium MEMBER medium CONSTANT FINAL)
55 Q_PROPERTY(qml_material::token::ButtonSizeItem large MEMBER large CONSTANT FINAL)
56 Q_PROPERTY(qml_material::token::ButtonSizeItem xlarge MEMBER xlarge CONSTANT FINAL)
57
58public:
59 bool operator==(const ButtonSize&) const = default;
60 ButtonSizeItem xsmall {
61 32.0, // container_height
62 12.0, // corner_size
63 8.0, // pressed_corner_size
64 18.0, // icon_size
65 16.0, // leading_space
66 16.0, // trailing_space
67 8.0 // spacing
68 };
69
70 ButtonSizeItem small {
71 40.0, // container_height
72 12.0, // corner_size
73 8.0, // pressed_corner_size
74 18.0, // icon_size
75 24.0, // leading_space
76 24.0, // trailing_space
77 8.0 // spacing
78 };
79
80 ButtonSizeItem medium {
81 48.0, // container_height
82 16.0, // corner_size
83 12.0, // pressed_corner_size
84 24.0, // icon_size
85 24.0, // leading_space
86 24.0, // trailing_space
87 8.0 // spacing
88 };
89
90 ButtonSizeItem large {
91 56.0, // container_height
92 28.0, // corner_size
93 16.0, // pressed_corner_size
94 24.0, // icon_size
95 32.0, // leading_space
96 32.0, // trailing_space
97 12.0 // spacing
98 };
99
100 ButtonSizeItem xlarge {
101 72.0, // container_height
102 28.0, // corner_size
103 16.0, // pressed_corner_size
104 32.0, // icon_size
105 32.0, // leading_space
106 32.0, // trailing_space
107 12.0 // spacing
108 };
109};
110
115 Q_GADGET_EXPORT(QML_MATERIAL_API)
116 QML_ELEMENT
117 QML_VALUE_TYPE(icon_button_size_item)
118
119
120 Q_PROPERTY(qreal icon_size MEMBER icon_size CONSTANT FINAL)
122 Q_PROPERTY(qreal container_height MEMBER container_height CONSTANT FINAL)
124 Q_PROPERTY(qreal default_width MEMBER default_width CONSTANT FINAL)
126 Q_PROPERTY(qreal narrow_width MEMBER narrow_width CONSTANT FINAL)
128 Q_PROPERTY(qreal wide_width MEMBER wide_width CONSTANT FINAL)
130 Q_PROPERTY(qreal corner_size MEMBER corner_size CONSTANT FINAL)
132 Q_PROPERTY(qreal pressed_corner_size MEMBER pressed_corner_size CONSTANT FINAL)
133
134public:
135 bool operator==(const IconButtonSizeItem&) const = default;
136 qreal icon_size;
137 qreal container_height;
138 qreal default_width;
139 qreal narrow_width;
140 qreal wide_width;
141 qreal corner_size;
142 qreal pressed_corner_size;
143};
144
149 Q_GADGET_EXPORT(QML_MATERIAL_API)
150 QML_ELEMENT
151 QML_VALUE_TYPE(icon_button_size)
152
153 Q_PROPERTY(qml_material::token::IconButtonSizeItem xsmall MEMBER xsmall CONSTANT FINAL)
154 Q_PROPERTY(qml_material::token::IconButtonSizeItem small MEMBER small CONSTANT FINAL)
155 Q_PROPERTY(qml_material::token::IconButtonSizeItem medium MEMBER medium CONSTANT FINAL)
156 Q_PROPERTY(qml_material::token::IconButtonSizeItem large MEMBER large CONSTANT FINAL)
157 Q_PROPERTY(qml_material::token::IconButtonSizeItem xlarge MEMBER xlarge CONSTANT FINAL)
158
159public:
160 bool operator==(const IconButtonSize&) const = default;
161 IconButtonSizeItem xsmall {
162 22.0, // icon_size
163 0.0, // container_height
164 0.0, // default_width
165 0.0, // narrow_width
166 0.0, // wide_width
167 12.0, // corner_size
168 8.0 // pressed_corner_size
169 };
170
171 IconButtonSizeItem small {
172 24.0, // icon_size
173 40.0, // container_height
174 40.0, // default_width
175 32.0, // narrow_width
176 52.0, // wide_width
177 12.0, // corner_size
178 8.0 // pressed_corner_size
179 };
180
181 IconButtonSizeItem medium {
182 24.0, // icon_size
183 56.0, // container_height
184 56.0, // default_width
185 48.0, // narrow_width
186 72.0, // wide_width
187 16.0, // corner_size
188 12.0 // pressed_corner_size
189 };
190
191 IconButtonSizeItem large {
192 32.0, // icon_size
193 96.0, // container_height
194 96.0, // default_width
195 64.0, // narrow_width
196 128.0, // wide_width
197 28.0, // corner_size
198 16.0 // pressed_corner_size
199 };
200
201 IconButtonSizeItem xlarge {
202 40.0, // icon_size
203 136.0, // container_height
204 136.0, // default_width
205 104.0, // narrow_width
206 184.0, // wide_width
207 28.0, // corner_size
208 16.0 // pressed_corner_size
209 };
210};
211
212} // namespace qml_material::token
Button size tokens for a specific size class.
Definition button.hpp:13
qreal container_height
Button container height (dp)
Definition button.hpp:19
qreal leading_space
Leading space (padding-left) (dp)
Definition button.hpp:27
qreal corner_size
Corner radius (dp)
Definition button.hpp:21
qreal trailing_space
Trailing space (padding-right) (dp)
Definition button.hpp:29
qreal icon_size
Icon size (dp)
Definition button.hpp:25
qreal pressed_corner_size
Corner radius when pressed (dp)
Definition button.hpp:23
qreal spacing
Spacing between icon and text (dp)
Definition button.hpp:31
Collection of button size tokens for different size classes.
Definition button.hpp:47
Icon button size tokens for a specific size class.
Definition button.hpp:114
Collection of icon button size tokens for different size classes.
Definition button.hpp:148