fix(app-iced): M116 r5 —— 圆角状态行独立成「状态」(换色加粗)+ 说明段去掉重复并压短

r5 复审 p2-1(图上)、p2-2(证据文档两处)。

## P2-1:状态行要被当成「状态」看见
- 说明段 `SettingsAppearanceCornerHint` 里那句 α 说明**删掉**,只留平台分工(Win11/Server 2025
  请求系统圆角、Win10 直角、macOS/Linux 看桌面合成器、我们不自绘)——英文从约 470 字符 /
  7 行压到 3 行(1180 宽、100% DPI 实测)。
- `SettingsAppearanceCornerSuspended` 改成**只由状态行说**,且状态行不再是「说明段的续行」:
  紧贴在档位行下面,颜色换成设计令牌 `Role::Tertiary`、字重加粗(`note_line` 保持原形,
  新增 4 行的 `state_line` 助手)。档位本身照常显示用户选的值,不改成「直角」。
- 出图复核(四张,浅/深 × α=100/85):α=85 两张能看到一条**加粗的第三色**状态行,
  α=100 两张没有;状态行墨色由 `(63,76,87)`(与说明段同色)变为 `(116,108,140)`(Tertiary)。

## P2-2:证据文档两处
- `DevDocs/artifacts/m116/probe-table.md` 的 `readback` 归因:`0x04000000`=`WS_CLIPSIBLINGS`
  是 **`CreateWindowExW` 自己补的**(建完就在),`ShowWindow` **只补** `0x10000000`=`WS_VISIBLE`;
  按 r5 复审的最小实验写清(req `0x00CF0000` → before `0x04CF0000` → after `0x14CF0000`),
  读数一行未动。
- `corner/tests.rs` 里「本 mission 没构建 bin」改成指向 2026-11-04 的两次真跑记录
  (`DevDocs/artifacts/m116/README.md` 的 `[corner] boot …` 两行)。

门禁(`CARGO_TARGET_DIR=C:/Temp/ull-target/wt-116-r2`,`-j 2`,跑完已删):
fmt --check 0 / `cargo test -p unlucky-app-iced --lib` 0(475 passed)/ `-p unlucky-i18n --lib` 0(24 passed)。
This commit is contained in:
AskaEth committed 2026-11-05 06:35:21 +08:00
1 parent 91f723a019
commit 67deb103b0
4 files changed
+15 -10

No files matched your search

@@ -88,14 +88,12 @@ pub fn section<'a>(ui: &'a Ui, state: &'a State) -> Element<'a, Message> {
),
],
));
// 档位照常显示用户选的值(不偷偷改成「直角」);α<1 时只补一句状态(裁定 A)。
let mut notes = vec![t(Key::SettingsAppearanceCornerHint)];
// 状态行(r5 P2-1):只在「跟随系统 + α<1」出现;Tertiary + 加粗,与下面的说明段刻意不同形。
if corner == WindowCorner::System && state.window_opacity < 1.0 {
notes.push(t(Key::SettingsAppearanceCornerSuspended));
}
for note in notes {
rows = rows.push(note_line(ui, note, ui.color(Role::OnSurfaceVariant)));
rows = rows.push(state_line(ui, t(Key::SettingsAppearanceCornerSuspended)));
}
let tone = ui.color(Role::OnSurfaceVariant);
rows = rows.push(note_line(ui, t(Key::SettingsAppearanceCornerHint), tone));
// ③ 面板透明度(CPU 档强制 1.0)
let forced = state.panel_is_forced();
@@ -283,6 +281,12 @@ fn note_line<'a>(ui: &'a Ui, content: &str, color: Color) -> Element<'a, Message
frame::text_role_owned(ui, TypeRole::BodySmall, false, content.to_owned(), color)
}
/// 状态行(r5 P2-1):与说明段刻意不同形——`Role::Tertiary` + 强调字重,让「当前不生效」被当成状态看见。
fn state_line<'a>(ui: &'a Ui, text: &str) -> Element<'a, Message> {
let tone = ui.color(Role::Tertiary);
frame::text_role_owned(ui, TypeRole::BodySmall, true, text.to_owned(), tone)
}
/// 一行「标签 + 值 + 滑块 + 说明」。
fn slider_row<'a>(
ui: &'a Ui,
@@ -159,7 +159,8 @@ fn the_log_line_carries_every_field() {
///
/// 抓得住:字段被删/改名/顺序错乱(`excluded_reason` 少一栏、`radius=system` 丢了、
/// `frame` / `layered` 被挪出这一行)——这些都会让「没生效 vs 生效了看不见」的区分重新变成猜谜。
/// 抓不住:产品进程里那一行到底长什么样(本 mission 没构建 bin;合并态由 tower 编 `--bins` 补)。
/// 抓不住:**产品进程**里那一行(本测试只钉格式)。真值已有:2026-11-04 两次真跑产品 bin
/// (α=1.0 / α=0.85)的 `[corner] boot …` 两行,见 `DevDocs/artifacts/m116/README.md`。
#[test]
fn the_log_line_shape_is_pinned_with_the_measured_readings() {
// 本机实测:Server 2025 / build 26100;读回 `E_INVALIDARG`;产品形状是 `overlapped`,