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:
1 parent
41427fdcb3
commit
3611cbbbde
24 files changed
+1006
-22
No files matched your search
@@ -186,6 +186,29 @@ void meow_topappbar_set_back(meow_widget *w, int on); /* 1=显示返回箭头
|
||||
int meow_topappbar_add_action(meow_widget *w, const char *label); /* 返回动作下标 */
|
||||
#define MEOW_TOPBAR_BACK (-2)
|
||||
int meow_topappbar_hit(meow_widget *w, int x, int y); /* MEOW_TOPBAR_BACK=返回 idx>=0=动作 -1=无 */
|
||||
/* TopAppBar 位图动作图标(sb_icons[],Material Symbols Rounded 32x32 单通道 alpha,Apache-2.0)。
|
||||
* 动作项默认文本(add_action);经本 API 把某项改成位图:绘制取主题 onSurface(按压淡色),
|
||||
* 与状态栏同源 blit(ink 垂直对齐栏中点)。返回 0=成功;NULL/非 topbar/越界 idx/非法 icon=负值。 */
|
||||
int meow_topappbar_set_item_icon(meow_widget *w, int idx, int icon_idx);
|
||||
/* 位图动作图标索引(= sb_icons[] 下标,与 SDK sb_icons.h 的 SB_I_* 同值)。
|
||||
* 状态栏占用 0-14(不动);动作图标从 15 起连续追加,勿改序(须与 sb_icons.h 表序一致)。 */
|
||||
enum {
|
||||
MEOW_ICON_SETTINGS = 15,
|
||||
MEOW_ICON_REFRESH = 16,
|
||||
MEOW_ICON_SEARCH = 17,
|
||||
MEOW_ICON_PLAY_ARROW = 18,
|
||||
MEOW_ICON_PAUSE = 19,
|
||||
MEOW_ICON_SKIP_NEXT = 20,
|
||||
MEOW_ICON_SKIP_PREV = 21,
|
||||
MEOW_ICON_ARROW_BACK = 22,
|
||||
MEOW_ICON_CLOSE = 23,
|
||||
MEOW_ICON_ADD = 24,
|
||||
MEOW_ICON_CHECK = 25,
|
||||
MEOW_ICON_LYRICS = 26,
|
||||
MEOW_ICON_QUEUE_MUSIC = 27,
|
||||
MEOW_ICON_DOWNLOAD = 28,
|
||||
MEOW_ICON_HEART = 29,
|
||||
};
|
||||
|
||||
/* ---- NavigationBar(底部导航栏)---- */
|
||||
meow_widget *meow_navigationbar_create(int x, int y, int w, int h);
|
||||
|
||||
Reference in new issue
Block a user