sdk(M7.0a): 视图事件接线 + IconButton + 主题色板导出/注入(launcher 重写基座前置)
M7 launcher 整体 MD3 重写的 SDK 基座补全(只动 patch_v2/sdk/): - 缺口#7 meow_view 事件接线:meow_view_dispatch_event 接入 meow_ui_run 主循环 (§6.4 分流之上,TAP/KEY/SWIPE/LONG_PRESS 先经 view 路由、命中即消费、未命中回落 on_* —— 无 view 树/未命中完全向后兼容);meow_view_add_child 在父已进入时挂子视图 立即进入(递归 children 修正);meow_view_sub_push/pop 标注废弃(设计定案 b 不做页内 子导航栈)。 - 缺口#2 IconButton:meow_iconbtn_create —— sb_icons 位图 + 圆形命中 + 按压/按住态 (实时,同 meow_btn)+ owner/enabled 闸门;电源菜单/播放控制/锁屏通用件。 - 缺口#6 SDK 半主题收口:meow_theme_export/meow_theme_inject(§8.1.5 色板导出/注入), launcher s_ui_theme() 将据此变读 SDK 的薄壳(launcher 侧改动不在此批)。 - 文档:MEOW_APP_SDK.md 补 meow_iconbtn_create + meow_theme_export/inject 说明。 - 验证:新增 test_meow_ui_iconbtn / test_meow_ui_theme_export / test_meow_ui_view_event 全 PASS;全量 SDK 宿主回归(widgets/dispatch/box/anim/scroll/listvirt/str/ime/pinyin/ overlay/notif/input_keys/p1p2p3/umbrella/ft)全 PASS;交叉 -Wall -Wextra 0 warning。 meow_ui.a md5: be24214e24faadba63577f3a98c2c9d1 -> 7fc83f7731cadb2f91df1c3ed7d3814f
This commit is contained in:
1 parent
e67cc50afa
commit
a8c51be1fc
12 files changed
+595
-11
No files matched your search
@@ -62,6 +62,28 @@ void meow_theme_remove_listener(meow_theme_listener cb);
|
||||
/* [D4] 脱机访问两套内置色板(无 settings 文件也可靠):返回当前解析生效的色板副本。 */
|
||||
meow_theme meow_theme_defaults(meow_theme_mode m);
|
||||
|
||||
/* ---- §8.1.5 色板导出/注入(单一权威桥,M7.0a)----
|
||||
* 用户在 M7 定案「SDK meow_theme 为唯一权威」:launcher 的 s_ui_theme() 将改为读 SDK 的薄壳,
|
||||
* 不再自持 4 套静态色板。本接口是那个前置(launcher 侧改动不在此批)——
|
||||
*
|
||||
* meow_theme_export(out) 把当前「style×mode」解析生效的完整权威主题拷给调用方。
|
||||
* 调用方是 stateless 的绘制原语时(如 launcher s_ui_theme),由此读
|
||||
* 单一权威,再按它的角色字段(9 色)映射到自己的绘制便利结构,即:
|
||||
* surface → surface
|
||||
* surfaceVariant → surface_variant
|
||||
* surfaceContainer → surface_container
|
||||
* primary → primary
|
||||
* onSurface → on_surface
|
||||
* onSurfaceVariant → on_surface_variant
|
||||
* outline → outline
|
||||
* error → error
|
||||
* surfaceTint → surface_tint
|
||||
* meow_theme_inject(src) 用一份自定义板覆写当前生效主题(如 launcher 自定义背景/强调/风格),
|
||||
* src==NULL 恢复内建(随 settings 解析)。覆写不随 meow_theme_reload() 丢弃
|
||||
* (程序化覆写优先于 settings,与 meow_ui_set_style 语义一致)。 */
|
||||
void meow_theme_export(meow_theme *out);
|
||||
void meow_theme_inject(const meow_theme *src);
|
||||
|
||||
/* ---- §8.1 顶级主题风格族(minimal,2026-08-30)----
|
||||
* 主题 = 顶级主题风格族(ui.style:MD3/MIUIx)× 明暗(display.theme)。本批只落「状态栏图标集
|
||||
* 随 ui.style 换集」的最小闭环:meow_ui_set_style 记录 style(同值忽略)+ 触发 theme_reload/
|
||||
|
||||
@@ -210,6 +210,17 @@ enum {
|
||||
MEOW_ICON_HEART = 29,
|
||||
};
|
||||
|
||||
/* ---- IconButton(圆形/位图图标按钮,M7.0a 缺口#2)----
|
||||
* 圆形命中 + 位图图标(sb_icons[],Material Symbols Rounded 单通道 alpha)+ 按压态(实时)。
|
||||
* 用途:电源菜单圆钮 / Now Playing 播放控制 / 锁屏常用件等「位图图标 + 圆形」按钮。
|
||||
* icon_idx = sb_icons[] 下标(用上面 MEOW_ICON_* 枚举或 SB_I_*;越界画空位图,命中照常)。
|
||||
* size = 按钮直径(外接正方形 w=h=size;图标 ink 高 = size*6/10,MD3 图标比)。
|
||||
* 语义色:底 surfaceContainerLow、图标 onSurface;按压叠 onSurface 状态层(实时,同 meow_btn);
|
||||
* 禁用变淡;选中态 primaryContainer/onPrimaryContainer(meow_widget_set_selected)。
|
||||
* 命中:圆形(半径=size/2,圆心=按钮中心),owner==active + enabled 双闸门。
|
||||
* 返回按钮句柄;App 在 on_tap 里用 meow_widget_hit 判定是否命中本钮(命中即触发动作)。 */
|
||||
meow_widget *meow_iconbtn_create(int x, int y, int size, int icon_idx);
|
||||
|
||||
/* ---- NavigationBar(底部导航栏)---- */
|
||||
meow_widget *meow_navigationbar_create(int x, int y, int w, int h);
|
||||
int meow_navigationbar_add_item(meow_widget *w, const char *label);
|
||||
|
||||
Reference in new issue
Block a user