Files
MeowOS-For-R3P2/patch_v2/hello_app/ui/common/chrome.c
T
MeowOS 1d2496b38c refactor(hello): 视图框架批次② — hello.c 拆分为 app.c+ui/{home,full,demo}.c+ui/common/chrome.c+logic/{notify,state}.c(定案B: demo视图态留ui/;定案b: page导航包装activity栈);test_p1p2p3_repro 改多文件链接形态 (agent-177)
hello f45ba051→c06b3b4f; mipsel -Wall -Wextra 0 warning; 宿主 P1c/P2/P3+widgets 全 PASS
出入(诚实): view on_draw/on_event 路径暂未启用(注册表直绘已覆盖, on_draw 双画风险), 留批③实测; home/full 仍手绘未迁注册表
2026-08-31 03:31:09 +08:00

37 lines
1.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ui/common/chrome.c — demo 页共享 chrome(TopAppBar / NavigationBar / FAB)。
*
* 与 demo 内容分离:chrome 固定不随内容重建滚动;显式 set_z(999) 置顶(§6.2),
* 区域/整帧重画都最后画 chrome。FAB 可被 demo 交互重建换计数 label(见 demo_on_tap)。
* chrome 控件 owner=ACT_DEMO(由调用方 demo_init 先 push ACT_DEMO 再建),命中/绘制只在 demo 态生效。
*/
#include "hello_internal.h"
meow_widget *g_tb = NULL; /* TopAppBar(chrome 固定) */
meow_widget *g_nav = NULL; /* NavigationBar(chrome 固定) */
meow_widget *g_fab = NULL; /* FAB(chrome 固定,可重建换计数 label) */
rect_t r_tb, r_nav, r_fab;
void chrome_create(void)
{
int sb = meow_ui_statusbar_height();
r_tb = RX(0, sb, 480, 56); g_tb = meow_topappbar_create(0, sb, 480, 56, "Widgets Demo");
meow_topappbar_set_back(g_tb, 1);
r_nav = RX(0, 680, 480, 40); g_nav = meow_navigationbar_create(0, 680, 480, 40);
meow_navigationbar_add_item(g_nav, "Buttons");
meow_navigationbar_add_item(g_nav, "List");
meow_navigationbar_add_item(g_nav, "More");
meow_navigationbar_set_selected(g_nav, 0);
r_fab = RX(406, 616, 56, 56); g_fab = meow_fab_create(406, 616, 56, "+");
/* chrome 显式置顶(§6.2):> 一切自动 z(127),区域重画/整帧都最后画 chrome。 */
meow_widget_set_z(g_tb, 999);
meow_widget_set_z(g_nav, 999);
meow_widget_set_z(g_fab, 999);
}
void chrome_free(void)
{
if (g_tb) { meow_widget_free(g_tb); g_tb = NULL; }
if (g_nav) { meow_widget_free(g_nav); g_nav = NULL; }
if (g_fab) { meow_widget_free(g_fab); g_fab = NULL; }
}