Fluid 1.3.0
Material Design for QtQuick and Qml
Loading...
Searching...
No Matches
splitbutton.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include <QtCore/qobject.h>
7#include <QtQml/qqmlregistration.h>
8
9#include "elevationtokens.h"
10#include "shapetokens.h"
11
12// Generated AndroidX values: VERSION 18_0_18, SplitButtonXSmallTokens.kt,
13// SplitButtonSmallTokens.kt, SplitButtonMediumTokens.kt, SplitButtonLargeTokens.kt,
14// SplitButtonXLargeTokens.kt; common-button elevation from FilledButtonTokens.kt,
15// FilledTonalButtonTokens.kt and ElevatedButtonTokens.kt, VERSION v0_11_0.
16// https://android.googlesource.com/platform/frameworks/support/+/5ba2cdd61be7b6945db999b238d14f3c626136fb/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/tokens/
17// Optical coefficient: HorizontalCenterOptically.kt at the same pinned revision.
18// menuAnchorGap and trailingSelectedStateLayerOpacity follow the component specification:
19// https://m3.material.io/components/split-button/specs
20
21namespace Fluid {
22
25{
26 Q_GADGET
27 QML_ANONYMOUS
28
29 Q_PROPERTY(qreal containerHeightExtraSmall READ containerHeightExtraSmall CONSTANT FINAL)
30 Q_PROPERTY(qreal containerHeightSmall READ containerHeightSmall CONSTANT FINAL)
31 Q_PROPERTY(qreal containerHeightMedium READ containerHeightMedium CONSTANT FINAL)
32 Q_PROPERTY(qreal containerHeightLarge READ containerHeightLarge CONSTANT FINAL)
33 Q_PROPERTY(qreal containerHeightExtraLarge READ containerHeightExtraLarge CONSTANT FINAL)
34 Q_PROPERTY(qreal betweenSpaceExtraSmall READ betweenSpaceExtraSmall CONSTANT FINAL)
35 Q_PROPERTY(qreal betweenSpaceSmall READ betweenSpaceSmall CONSTANT FINAL)
36 Q_PROPERTY(qreal betweenSpaceMedium READ betweenSpaceMedium CONSTANT FINAL)
37 Q_PROPERTY(qreal betweenSpaceLarge READ betweenSpaceLarge CONSTANT FINAL)
38 Q_PROPERTY(qreal betweenSpaceExtraLarge READ betweenSpaceExtraLarge CONSTANT FINAL)
40 Q_PROPERTY(qreal innerCornerCornerSizeSmall READ innerCornerCornerSizeSmall CONSTANT FINAL)
41 Q_PROPERTY(qreal innerCornerCornerSizeMedium READ innerCornerCornerSizeMedium CONSTANT FINAL)
42 Q_PROPERTY(qreal innerCornerCornerSizeLarge READ innerCornerCornerSizeLarge CONSTANT FINAL)
64 Q_PROPERTY(qreal trailingIconSizeExtraSmall READ trailingIconSizeExtraSmall CONSTANT FINAL)
65 Q_PROPERTY(qreal trailingIconSizeSmall READ trailingIconSizeSmall CONSTANT FINAL)
66 Q_PROPERTY(qreal trailingIconSizeMedium READ trailingIconSizeMedium CONSTANT FINAL)
67 Q_PROPERTY(qreal trailingIconSizeLarge READ trailingIconSizeLarge CONSTANT FINAL)
68 Q_PROPERTY(qreal trailingIconSizeExtraLarge READ trailingIconSizeExtraLarge CONSTANT FINAL)
79 Q_PROPERTY(qreal menuAnchorGap READ menuAnchorGap CONSTANT FINAL)
81 Q_PROPERTY(qreal opticalCenteringCoefficient READ opticalCenteringCoefficient CONSTANT FINAL)
82 Q_PROPERTY(qreal flatContainerElevation READ flatContainerElevation CONSTANT FINAL)
83 Q_PROPERTY(qreal flatHoverContainerElevation READ flatHoverContainerElevation CONSTANT FINAL)
84 Q_PROPERTY(qreal elevatedContainerElevation READ elevatedContainerElevation CONSTANT FINAL)
86 Q_PROPERTY(qreal disabledContainerElevation READ disabledContainerElevation CONSTANT FINAL)
87 Q_PROPERTY(Fluid::ShapeValue outerCornerShape READ outerCornerShape CONSTANT FINAL)
89
90public:
91 constexpr qreal containerHeightExtraSmall() const
92 {
93 return 32.0;
94 }
95 constexpr qreal containerHeightSmall() const
96 {
97 return 40.0;
98 }
99 constexpr qreal containerHeightMedium() const
100 {
101 return 56.0;
102 }
103 constexpr qreal containerHeightLarge() const
104 {
105 return 96.0;
106 }
107 constexpr qreal containerHeightExtraLarge() const
108 {
109 return 136.0;
110 }
111 constexpr qreal betweenSpaceExtraSmall() const
112 {
113 return 2.0;
114 }
115 constexpr qreal betweenSpaceSmall() const
116 {
117 return 2.0;
118 }
119 constexpr qreal betweenSpaceMedium() const
120 {
121 return 2.0;
122 }
123 constexpr qreal betweenSpaceLarge() const
124 {
125 return 2.0;
126 }
127 constexpr qreal betweenSpaceExtraLarge() const
128 {
129 return 2.0;
130 }
131 constexpr qreal innerCornerCornerSizeExtraSmall() const
132 {
134 }
135 constexpr qreal innerCornerCornerSizeSmall() const
136 {
138 }
139 constexpr qreal innerCornerCornerSizeMedium() const
140 {
142 }
143 constexpr qreal innerCornerCornerSizeLarge() const
144 {
145 return ShapeTokens{ }.cornerValueSmall();
146 }
147 constexpr qreal innerCornerCornerSizeExtraLarge() const
148 {
149 return ShapeTokens{ }.cornerValueMedium();
150 }
152 {
153 return ShapeTokens{ }.cornerValueSmall();
154 }
155 constexpr qreal innerHoveredCornerCornerSizeSmall() const
156 {
157 return ShapeTokens{ }.cornerValueMedium();
158 }
160 {
161 return ShapeTokens{ }.cornerValueMedium();
162 }
163 constexpr qreal innerHoveredCornerCornerSizeLarge() const
164 {
166 }
168 {
170 }
172 {
173 return ShapeTokens{ }.cornerValueSmall();
174 }
175 constexpr qreal innerPressedCornerCornerSizeSmall() const
176 {
177 return ShapeTokens{ }.cornerValueMedium();
178 }
180 {
181 return ShapeTokens{ }.cornerValueMedium();
182 }
183 constexpr qreal innerPressedCornerCornerSizeLarge() const
184 {
186 }
188 {
190 }
192 {
193 return 12.0;
194 }
195 constexpr qreal leadingButtonLeadingSpaceSmall() const
196 {
197 return 16.0;
198 }
199 constexpr qreal leadingButtonLeadingSpaceMedium() const
200 {
201 return 24.0;
202 }
203 constexpr qreal leadingButtonLeadingSpaceLarge() const
204 {
205 return 48.0;
206 }
208 {
209 return 64.0;
210 }
212 {
213 return 10.0;
214 }
215 constexpr qreal leadingButtonTrailingSpaceSmall() const
216 {
217 return 12.0;
218 }
219 constexpr qreal leadingButtonTrailingSpaceMedium() const
220 {
221 return 24.0;
222 }
223 constexpr qreal leadingButtonTrailingSpaceLarge() const
224 {
225 return 48.0;
226 }
228 {
229 return 64.0;
230 }
231 constexpr qreal trailingIconSizeExtraSmall() const
232 {
233 return 22.0;
234 }
235 constexpr qreal trailingIconSizeSmall() const
236 {
237 return 22.0;
238 }
239 constexpr qreal trailingIconSizeMedium() const
240 {
241 return 26.0;
242 }
243 constexpr qreal trailingIconSizeLarge() const
244 {
245 return 38.0;
246 }
247 constexpr qreal trailingIconSizeExtraLarge() const
248 {
249 return 50.0;
250 }
252 {
253 return 13.0;
254 }
255 constexpr qreal trailingButtonLeadingSpaceSmall() const
256 {
257 return 13.0;
258 }
259 constexpr qreal trailingButtonLeadingSpaceMedium() const
260 {
261 return 15.0;
262 }
263 constexpr qreal trailingButtonLeadingSpaceLarge() const
264 {
265 return 29.0;
266 }
268 {
269 return 43.0;
270 }
272 {
273 return 13.0;
274 }
275 constexpr qreal trailingButtonTrailingSpaceSmall() const
276 {
277 return 13.0;
278 }
279 constexpr qreal trailingButtonTrailingSpaceMedium() const
280 {
281 return 15.0;
282 }
283 constexpr qreal trailingButtonTrailingSpaceLarge() const
284 {
285 return 29.0;
286 }
288 {
289 return 43.0;
290 }
291 constexpr qreal menuAnchorGap() const
292 {
293 return 4.0;
294 }
295 constexpr qreal trailingSelectedStateLayerOpacity() const
296 {
297 return 0.10;
298 }
299 constexpr qreal opticalCenteringCoefficient() const
300 {
301 return 0.11;
302 }
303 constexpr qreal flatContainerElevation() const
304 {
305 return ElevationTokens{ }.level0();
306 }
307 constexpr qreal flatHoverContainerElevation() const
308 {
309 return ElevationTokens{ }.level1();
310 }
311 constexpr qreal elevatedContainerElevation() const
312 {
313 return ElevationTokens{ }.level1();
314 }
315 constexpr qreal elevatedHoverContainerElevation() const
316 {
317 return ElevationTokens{ }.level2();
318 }
319 constexpr qreal disabledContainerElevation() const
320 {
321 return ElevationTokens{ }.level0();
322 }
323 constexpr ShapeValue outerCornerShape() const
324 {
325 return ShapeTokens{ }.cornerFull();
326 }
328 {
329 return ShapeTokens{ }.cornerFull();
330 }
331};
332
333} // namespace Fluid
Material Design 3 system elevation tokens.
QML_ANONYMOUSqreal level0
Material Design 3 system shape tokens.
Definition shapetokens.h:48
Fluid::ShapeValue cornerFull
Definition shapetokens.h:59
qreal cornerValueExtraSmall
Definition shapetokens.h:72
qreal cornerValueLargeIncreased
Definition shapetokens.h:75
Immutable Material Design 3 Expressive split-button metrics.
Definition splitbutton.h:25
constexpr qreal containerHeightLarge() const
constexpr qreal trailingButtonLeadingSpaceMedium() const
qreal trailingButtonTrailingSpaceLarge
Definition splitbutton.h:77
qreal innerCornerCornerSizeExtraLarge
Definition splitbutton.h:43
qreal elevatedHoverContainerElevation
Definition splitbutton.h:85
constexpr qreal innerCornerCornerSizeMedium() const
constexpr qreal innerPressedCornerCornerSizeLarge() const
qreal trailingButtonLeadingSpaceExtraLarge
Definition splitbutton.h:73
constexpr qreal opticalCenteringCoefficient() const
constexpr qreal containerHeightSmall() const
Definition splitbutton.h:95
qreal innerPressedCornerCornerSizeSmall
Definition splitbutton.h:50
qreal elevatedContainerElevation
Definition splitbutton.h:84
Fluid::ShapeValue outerCornerShape
Definition splitbutton.h:87
qreal trailingButtonLeadingSpaceExtraSmall
Definition splitbutton.h:69
constexpr qreal trailingButtonTrailingSpaceMedium() const
constexpr qreal innerCornerCornerSizeExtraSmall() const
constexpr qreal betweenSpaceExtraSmall() const
qreal flatContainerElevation
Definition splitbutton.h:82
constexpr qreal trailingButtonTrailingSpaceExtraSmall() const
qreal leadingButtonTrailingSpaceMedium
Definition splitbutton.h:61
constexpr qreal trailingIconSizeExtraSmall() const
constexpr qreal trailingButtonLeadingSpaceLarge() const
qreal betweenSpaceExtraLarge
Definition splitbutton.h:38
constexpr qreal trailingButtonLeadingSpaceSmall() const
constexpr qreal menuAnchorGap() const
qreal innerPressedCornerCornerSizeExtraSmall
Definition splitbutton.h:49
constexpr ShapeValue trailingExpandedInnerCornerShape() const
qreal trailingButtonTrailingSpaceSmall
Definition splitbutton.h:75
constexpr qreal trailingButtonLeadingSpaceExtraLarge() const
qreal trailingButtonTrailingSpaceMedium
Definition splitbutton.h:76
qreal leadingButtonLeadingSpaceExtraLarge
Definition splitbutton.h:58
constexpr qreal innerCornerCornerSizeSmall() const
constexpr qreal innerHoveredCornerCornerSizeSmall() const
constexpr qreal containerHeightMedium() const
Definition splitbutton.h:99
constexpr qreal leadingButtonLeadingSpaceMedium() const
constexpr qreal leadingButtonLeadingSpaceExtraSmall() const
constexpr qreal innerPressedCornerCornerSizeExtraSmall() const
constexpr qreal leadingButtonTrailingSpaceExtraSmall() const
constexpr qreal betweenSpaceSmall() const
constexpr qreal trailingButtonTrailingSpaceLarge() const
constexpr qreal leadingButtonLeadingSpaceLarge() const
constexpr qreal betweenSpaceLarge() const
constexpr qreal innerHoveredCornerCornerSizeMedium() const
qreal innerCornerCornerSizeExtraSmall
Definition splitbutton.h:39
constexpr qreal leadingButtonLeadingSpaceSmall() const
constexpr qreal innerPressedCornerCornerSizeSmall() const
qreal innerPressedCornerCornerSizeExtraLarge
Definition splitbutton.h:53
QML_ANONYMOUSqreal containerHeightExtraSmall
Definition splitbutton.h:29
constexpr qreal trailingButtonLeadingSpaceExtraSmall() const
qreal innerHoveredCornerCornerSizeMedium
Definition splitbutton.h:46
qreal containerHeightExtraLarge
Definition splitbutton.h:33
qreal leadingButtonTrailingSpaceExtraSmall
Definition splitbutton.h:59
qreal trailingIconSizeExtraLarge
Definition splitbutton.h:68
constexpr qreal leadingButtonTrailingSpaceMedium() const
qreal innerCornerCornerSizeLarge
Definition splitbutton.h:42
qreal innerHoveredCornerCornerSizeExtraSmall
Definition splitbutton.h:44
qreal innerHoveredCornerCornerSizeSmall
Definition splitbutton.h:45
constexpr qreal flatHoverContainerElevation() const
constexpr qreal trailingIconSizeLarge() const
constexpr qreal trailingButtonTrailingSpaceExtraLarge() const
constexpr qreal innerPressedCornerCornerSizeExtraLarge() const
constexpr qreal disabledContainerElevation() const
constexpr qreal leadingButtonTrailingSpaceSmall() const
qreal trailingIconSizeSmall
Definition splitbutton.h:65
qreal leadingButtonLeadingSpaceSmall
Definition splitbutton.h:55
qreal leadingButtonTrailingSpaceExtraLarge
Definition splitbutton.h:63
constexpr qreal innerPressedCornerCornerSizeMedium() const
constexpr qreal betweenSpaceMedium() const
qreal trailingButtonTrailingSpaceExtraSmall
Definition splitbutton.h:74
qreal containerHeightMedium
Definition splitbutton.h:31
qreal flatHoverContainerElevation
Definition splitbutton.h:83
qreal trailingIconSizeMedium
Definition splitbutton.h:66
constexpr qreal trailingSelectedStateLayerOpacity() const
constexpr qreal trailingButtonTrailingSpaceSmall() const
constexpr qreal trailingIconSizeMedium() const
qreal innerCornerCornerSizeSmall
Definition splitbutton.h:40
qreal innerCornerCornerSizeMedium
Definition splitbutton.h:41
qreal trailingButtonTrailingSpaceExtraLarge
Definition splitbutton.h:78
qreal trailingButtonLeadingSpaceMedium
Definition splitbutton.h:71
constexpr qreal innerHoveredCornerCornerSizeExtraLarge() const
qreal trailingSelectedStateLayerOpacity
Definition splitbutton.h:80
Fluid::ShapeValue trailingExpandedInnerCornerShape
Definition splitbutton.h:88
constexpr qreal containerHeightExtraLarge() const
qreal leadingButtonTrailingSpaceLarge
Definition splitbutton.h:62
constexpr ShapeValue outerCornerShape() const
qreal leadingButtonLeadingSpaceExtraSmall
Definition splitbutton.h:54
qreal trailingIconSizeLarge
Definition splitbutton.h:67
qreal trailingButtonLeadingSpaceLarge
Definition splitbutton.h:72
qreal leadingButtonLeadingSpaceLarge
Definition splitbutton.h:57
constexpr qreal flatContainerElevation() const
constexpr qreal elevatedContainerElevation() const
constexpr qreal innerCornerCornerSizeLarge() const
constexpr qreal trailingIconSizeSmall() const
qreal innerPressedCornerCornerSizeLarge
Definition splitbutton.h:52
qreal opticalCenteringCoefficient
Definition splitbutton.h:81
qreal disabledContainerElevation
Definition splitbutton.h:86
constexpr qreal innerHoveredCornerCornerSizeExtraSmall() const
constexpr qreal trailingIconSizeExtraLarge() const
qreal innerHoveredCornerCornerSizeExtraLarge
Definition splitbutton.h:48
constexpr qreal leadingButtonTrailingSpaceExtraLarge() const
qreal trailingIconSizeExtraSmall
Definition splitbutton.h:64
constexpr qreal innerHoveredCornerCornerSizeLarge() const
constexpr qreal elevatedHoverContainerElevation() const
qreal leadingButtonTrailingSpaceSmall
Definition splitbutton.h:60
constexpr qreal leadingButtonLeadingSpaceExtraLarge() const
qreal betweenSpaceExtraSmall
Definition splitbutton.h:34
qreal leadingButtonLeadingSpaceMedium
Definition splitbutton.h:56
constexpr qreal innerCornerCornerSizeExtraLarge() const
qreal innerPressedCornerCornerSizeMedium
Definition splitbutton.h:51
qreal trailingButtonLeadingSpaceSmall
Definition splitbutton.h:70
constexpr qreal betweenSpaceExtraLarge() const
constexpr qreal leadingButtonTrailingSpaceLarge() const
qreal innerHoveredCornerCornerSizeLarge
Definition splitbutton.h:47