/* 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; } }