hello f45ba051→c06b3b4f; mipsel -Wall -Wextra 0 warning; 宿主 P1c/P2/P3+widgets 全 PASS 出入(诚实): view on_draw/on_event 路径暂未启用(注册表直绘已覆盖, on_draw 双画风险), 留批③实测; home/full 仍手绘未迁注册表
37 lines
1.6 KiB
C
37 lines
1.6 KiB
C
/* 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; }
|
||
}
|