QmlMaterial 0.1.0
Loading...
Searching...
No Matches
split_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(split_button_size_item)
17
18
19 Q_PROPERTY(qreal container_height MEMBER container_height CONSTANT FINAL)
21 Q_PROPERTY(qreal between_space MEMBER between_space CONSTANT FINAL)
23 Q_PROPERTY(qreal inner_corner_size MEMBER inner_corner_size CONSTANT FINAL)
25 Q_PROPERTY(qreal outer_corner_size MEMBER outer_corner_size CONSTANT FINAL)
27 Q_PROPERTY(
30 Q_PROPERTY(
33 Q_PROPERTY(qreal trailing_button_icon_size MEMBER trailing_button_icon_size CONSTANT FINAL)
35 Q_PROPERTY(
38 Q_PROPERTY(
41 Q_PROPERTY(qreal inner_corner_hovered_size MEMBER inner_corner_hovered_size CONSTANT FINAL)
43 Q_PROPERTY(qreal inner_corner_pressed_size MEMBER inner_corner_pressed_size CONSTANT FINAL)
47 Q_PROPERTY(
48 qreal trailing_button_optical_offset MEMBER trailing_button_optical_offset CONSTANT FINAL)
49
50public:
51 bool operator==(const SplitButtonSizeItem&) const = default;
52 qreal container_height;
53 qreal between_space;
64 qreal trailing_button_optical_offset;
65};
66
71 Q_GADGET_EXPORT(QML_MATERIAL_API)
72 QML_ELEMENT
73 QML_VALUE_TYPE(split_button_size)
74
75
76 Q_PROPERTY(qml_material::token::SplitButtonSizeItem xsmall MEMBER xsmall CONSTANT FINAL)
78 Q_PROPERTY(qml_material::token::SplitButtonSizeItem small MEMBER small CONSTANT FINAL)
80 Q_PROPERTY(qml_material::token::SplitButtonSizeItem medium MEMBER medium CONSTANT FINAL)
82 Q_PROPERTY(qml_material::token::SplitButtonSizeItem large MEMBER large CONSTANT FINAL)
84 Q_PROPERTY(qml_material::token::SplitButtonSizeItem xlarge MEMBER xlarge CONSTANT FINAL)
85
86public:
87 bool operator==(const SplitButtonSize&) const = default;
88 // md.comp.split-button.xsmall.* tokens
89 SplitButtonSizeItem xsmall {
90 32.0, // container.height
91 2.0, // between-space
92 4.0, // inner-corner.corner-size
93 16.0, // outer-corner.corner-size (50% of 32)
94 12.0, // leading-button.leading-space
95 10.0, // leading-button.trailing-space
96 22.0, // trailing-button.icon.size
97 13.0, // trailing-button.leading-space
98 13.0, // trailing-button.trailing-space
99 8.0, // inner-corner.hovered.corner-size
100 8.0, // inner-corner.pressed.corner-size
101 16.0, // trailing-button.inner-corner.selected.corner-size (50% of 32)
102 1.0 // trailing-button optical offset
103 };
104
105 // md.comp.split-button.small.* tokens
106 SplitButtonSizeItem small {
107 40.0, // container.height
108 2.0, // between-space
109 4.0, // inner-corner.corner-size
110 20.0, // outer-corner.corner-size (50% of 40)
111 16.0, // leading-button.leading-space
112 12.0, // leading-button.trailing-space
113 22.0, // trailing-button.icon.size
114 13.0, // trailing-button.leading-space
115 13.0, // trailing-button.trailing-space
116 12.0, // inner-corner.hovered.corner-size
117 12.0, // inner-corner.pressed.corner-size
118 20.0, // trailing-button.inner-corner.selected.corner-size (50% of 40)
119 1.0 // trailing-button optical offset
120 };
121
122 // md.comp.split-button.medium.* tokens
123 SplitButtonSizeItem medium {
124 56.0, // container.height
125 2.0, // between-space
126 4.0, // inner-corner.corner-size
127 28.0, // outer-corner.corner-size (50% of 56)
128 24.0, // leading-button.leading-space
129 24.0, // leading-button.trailing-space
130 26.0, // trailing-button.icon.size
131 15.0, // trailing-button.leading-space
132 15.0, // trailing-button.trailing-space
133 12.0, // inner-corner.hovered.corner-size
134 12.0, // inner-corner.pressed.corner-size
135 28.0, // trailing-button.inner-corner.selected.corner-size (50% of 56)
136 2.0 // trailing-button optical offset
137 };
138
139 // md.comp.split-button.large.* tokens
140 SplitButtonSizeItem large {
141 96.0, // container.height
142 2.0, // between-space
143 8.0, // inner-corner.corner-size
144 48.0, // outer-corner.corner-size (50% of 96)
145 48.0, // leading-button.leading-space
146 48.0, // leading-button.trailing-space
147 38.0, // trailing-button.icon.size
148 29.0, // trailing-button.leading-space
149 29.0, // trailing-button.trailing-space
150 20.0, // inner-corner.hovered.corner-size
151 20.0, // inner-corner.pressed.corner-size
152 48.0, // trailing-button.inner-corner.selected.corner-size (50% of 96)
153 3.0 // trailing-button optical offset
154 };
155
156 // md.comp.split-button.xlarge.* tokens
157 SplitButtonSizeItem xlarge {
158 136.0, // container.height
159 2.0, // between-space
160 12.0, // inner-corner.corner-size
161 68.0, // outer-corner.corner-size (50% of 136)
162 64.0, // leading-button.leading-space
163 64.0, // leading-button.trailing-space
164 50.0, // trailing-button.icon.size
165 43.0, // trailing-button.leading-space
166 43.0, // trailing-button.trailing-space
167 20.0, // inner-corner.hovered.corner-size
168 20.0, // inner-corner.pressed.corner-size
169 68.0, // trailing-button.inner-corner.selected.corner-size (50% of 136)
170 6.0 // trailing-button optical offset
171 };
172};
173
174} // namespace qml_material::token
Split button size tokens for a specific size class.
Definition split_button.hpp:13
qreal leading_button_trailing_space
Trailing space of leading button (dp)
Definition split_button.hpp:31
qreal container_height
Split button container height (dp)
Definition split_button.hpp:19
qreal leading_button_leading_space
Leading space of leading button (dp)
Definition split_button.hpp:28
qreal trailing_button_inner_corner_selected_size MEMBER trailing_button_inner_corner_selected_size
Inner corner radius for trailing button when selected (dp)
Definition split_button.hpp:46
qreal inner_corner_size
Inner corner radius where buttons meet (dp)
Definition split_button.hpp:23
qreal trailing_button_leading_space
Leading space of trailing button (dp)
Definition split_button.hpp:36
qreal between_space
Space between leading and trailing buttons (dp)
Definition split_button.hpp:21
qreal trailing_button_trailing_space
Trailing space of trailing button (dp)
Definition split_button.hpp:39
qreal outer_corner_size
Outer corner radius (dp)
Definition split_button.hpp:25
qreal inner_corner_hovered_size
Inner corner radius when hovered (dp)
Definition split_button.hpp:41
qreal trailing_button_icon_size
Icon size for trailing button (dp)
Definition split_button.hpp:33
qreal inner_corner_pressed_size
Inner corner radius when pressed (dp)
Definition split_button.hpp:43
Collection of split button size tokens for different size classes.
Definition split_button.hpp:70