Add 'examples/hello/' from commit 'e88e5a6ff3b0f55671cb64c0a506e552360010e9'

git-subtree-dir: examples/hello
git-subtree-mainline: f44e3bc6d0
git-subtree-split: e88e5a6ff3
This commit is contained in:
MeowOS committed 2026-09-01 21:08:44 +08:00
commit 4f66da66ad
13 files changed
+1296

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
/* 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; }
}