sdk: sb_icons 扩充动作图标 + TopAppBar 位图图标支持

TopAppBar 动作项此前用字体码点(⚙↻⌕)绘制,4k 字库无这些码点→豆腐。改走位图:
- sb_icons.h 追加 15 个 Material Symbols Rounded 动作位图(settings/refresh/search/
  play_arrow/pause/skip_next/skip_previous/arrow_back/close/add/check/lyrics/
  queue_music/download/heart),FILL=1 实心与状态栏一致;sb_icons[] 只追加(0-14 不变),
  动作索引 15-29。
- 生成脚本 tools/gen_action_icons.py(cairosvg svg→32x32 单通道 alpha,SVG 缓存
  icons_src/ 可复现、断网可跑)。
- meow_ui_gfx.c 抽取图标 blit 像素核心 icon_blit_px,新增 meow_gfx_blit_icon_ink
  (控件路径不标顶栏脏区);meow_gfx_blit_icon 状态栏路径行为不变。
- meow_ui_widget.c W_TOPAPPBAR 项支持位图模式:新 API meow_topappbar_set_item_icon
  (w, idx, icon_idx),绘制取主题 onSurface/按压向栏底色淡 12%,文本项行为不变;
  hit 用统一项宽。
- 公共头 widgets.h 加 MEOW_ICON_*(15-29) 枚举与 set_item_icon 声明;internal.h 声明
  meow_gfx_blit_icon_ink。
- 宿主测试(test_meow_ui_widgets)加 topbar 位图图标绘制/命中/按压变淡 + 状态栏 blit
  回归断言;test_umbrella 加 MEOW_ICON_* 编译期锁;MEOW_APP_SDK.md 补说明+索引表。
- 验证:宿主测试 ALL PASS(14项);交叉 zig 构建 0 warning;meow_ui.a 新 md5
  1d69cdae55ab5dde3a98f5e2124f3656。
This commit is contained in:
AskaEth committed 2026-09-02 03:24:46 +08:00
1 parent 41427fdcb3
commit 3611cbbbde
24 files changed
+1006 -22

No files matched your search

+2
View File
@@ -27,6 +27,8 @@ _Static_assert(MEOW_THEME_DARK == 1, "theme dark");
_Static_assert(MEOW_STYLE_MIUIX == 1, "style miuix");
_Static_assert(MEOW_Z_TOP == 1000, "z top");
_Static_assert(MEOW_TOPBAR_BACK == (-2), "topbar back");
_Static_assert(MEOW_ICON_SETTINGS == 15 && MEOW_ICON_HEART == 29, "topbar icon idx 15..29");
_Static_assert(MEOW_ICON_SKIP_PREV == 21 && MEOW_ICON_QUEUE_MUSIC == 27, "topbar icon order");
_Static_assert(MEOW_SBAR_HOTZONE_FS == 4, "sbar hotzone fs");
_Static_assert(MEOW_WS_PRESSED == (1u << 3), "ws pressed");
_Static_assert(MEOW_BTN_ELEVATED == 4, "btn elevated");