CI / fmt (rustfmt --check) (push) Canceled after 0s
CI / clippy (ubuntu-latest) (push) Canceled after 0s
CI / clippy (windows-latest) (push) Canceled after 0s
CI / test (ubuntu-latest) (push) Canceled after 0s
CI / test (windows-latest) (push) Canceled after 0s
CI / build release (ubuntu-latest) (push) Canceled after 0s
CI / build release (windows-latest) (push) Canceled after 0s
Guards / core 零 UI 守门 (push) Canceled after 0s
Guards / 文件行数 ≤400 守门 (push) Canceled after 0s
Guards / 依赖许可与来源(cargo-deny) (push) Canceled after 0s
单提交快照:main 只保留已发布版本的代码树,开发史在 dev。
23 lines
836 B
Plaintext
23 lines
836 B
Plaintext
// 启动进度环:磁贴「启动中」状态用(下载/校验/启动三个阶段共用一个环)。
|
||
// 用 std-widgets 的 ProgressIndicator:progress <= 0 时转为不确定态(转圈)。
|
||
// P1 若要完全贴合 Metro 强调色,需自绘弧线(Slint 无 arc 命令,得用旋转遮罩法)。
|
||
import { Theme } from "../theme/tokens.slint";
|
||
import { ProgressIndicator } from "std-widgets.slint";
|
||
|
||
export component ProgressRing inherits Rectangle {
|
||
/// 0.0~1.0;<= 0 表示未知进度
|
||
in property <float> progress: 0;
|
||
in property <length> ring-size: 28px;
|
||
|
||
width: ring-size;
|
||
height: ring-size;
|
||
background: transparent;
|
||
|
||
ProgressIndicator {
|
||
width: root.ring-size;
|
||
height: root.ring-size;
|
||
progress: root.progress;
|
||
indeterminate: root.progress <= 0;
|
||
}
|
||
}
|