mirror of
https://github.com/slint-ui/slint.git
synced 2025-09-28 12:54:45 +00:00

Updated the version from 1.1 to 1.2 Renamed the header to "Slint Royalty-free Desktop, Mobile, and Web Applications License" Added definition of "Mobile Application" and grant of right Moved "Limitations" to 3rd section and "License Conditions - Attributions" to 2nd section Added flexibility to choose between showing "MadeWithSlint" as a dialog/splash screen or on a public webpage Moved the para on copyright notices to section under "Limitations"
42 lines
1.2 KiB
Text
42 lines
1.2 KiB
Text
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.2 OR LicenseRef-Slint-commercial
|
|
|
|
export component Spinner {
|
|
in property <float> progress;
|
|
in property <bool> indeterminate;
|
|
|
|
private property <int> count: 12;
|
|
|
|
min-width: 30px;
|
|
min-height: 30px;
|
|
horizontal-stretch: 0;
|
|
vertical-stretch: 0;
|
|
accessible-role: progress-indicator;
|
|
accessible-value: root.progress;
|
|
|
|
for i in count : Path {
|
|
property <angle> angle: -90deg + i*1turn / count;
|
|
stroke: NativeStyleMetrics.default-text-color;
|
|
opacity: {
|
|
if (indeterminate) {
|
|
return 0.9 - 0.8 * Math.mod(count * animation-tick() / 1s - i, count) / count;
|
|
} else if (i < progress * count){
|
|
return 0.9;
|
|
} else {
|
|
return 0.1 + 0.8 * (i - progress * count) / count;
|
|
}
|
|
}
|
|
stroke-width: 2.5px;
|
|
viewbox-height: 1;
|
|
viewbox-width: 1;
|
|
MoveTo {
|
|
x: 0.5 + 0.3 * Math.cos(angle);
|
|
y: 0.5 + 0.3 * Math.sin(angle);
|
|
}
|
|
LineTo {
|
|
x: 0.5 + 0.5 * Math.cos(angle);
|
|
y: 0.5 + 0.5 * Math.sin(angle);
|
|
}
|
|
}
|
|
}
|
|
|