refactor(hello): 视图框架批次③ — 目录嵌套(ui/home/home.c, ui/demo/demo.c+ui/demo/list/list.c) + 视图深度化(demo列表区抽 CONTAINER 子视图, 子>父命中) + on_draw 链路实测通过(list标题改由子视图 on_draw 经注册表绘制) + g_ds.prog 上收 logic/state.c (agent-181)
hello c06b3b4f→07b1ee37; mipsel -Wall -Wextra 0 warning; 宿主 P1c/P2/P3 + widgets 全 PASS SDK 后续项(本批 App 层显式驱动适配, 未动 SDK): view enter/leave 不递归 children + on_event 路由未接线 — 待 SDK 侧补
This commit is contained in:
1 parent
7a1c78c5de
commit
b5038f8673
10 files changed
+286
-65
No files matched your search
@@ -54,7 +54,7 @@ typedef struct {
|
||||
int _pad;
|
||||
} demo_ctrl;
|
||||
|
||||
/* ---- home 页(ui/home.c)---- */
|
||||
/* ---- home 页(ui/home/home.c)---- */
|
||||
meow_view *home_view_create(void); /* 建 home view;on_create 建 home 控件 + 注册业务监听器 */
|
||||
int home_on_tap(int x, int y);/* home 态命中分发:返回 1=已消费(含导航到 demo/full) */
|
||||
|
||||
@@ -63,7 +63,7 @@ meow_view *full_view_create(void); /* 建 full view(无控件;全屏文本
|
||||
int full_is_active(void); /* 1=处于全屏态 */
|
||||
void full_draw(void); /* 画全屏帧(clear accent + 文本 + flush) */
|
||||
|
||||
/* ---- demo 页(ui/demo.c)---- */
|
||||
/* ---- demo 页(ui/demo/demo.c)---- */
|
||||
meow_view *demo_view_create(void); /* 建 demo view;on_create 调 demo_init() 建 chrome+内容 */
|
||||
int demo_is_active(void); /* 1=处于 demo 页 */
|
||||
void demo_on_tap(int x, int y);
|
||||
@@ -78,19 +78,35 @@ void demo_init(void);
|
||||
void demo_paint(void);
|
||||
void demo_rebuild_to(int scroll);
|
||||
|
||||
/* ---- demo 视图态(设计定案 B:g_ds/g_drag_* /scroll 留 ui/demo.c,不迁 logic)----
|
||||
/* ---- demo 视图态(设计定案 B:g_ds 非列表字段/scroll/drag_page 留 ui/demo/demo.c,不迁 logic;
|
||||
* 列表视图态批③ 迁 ui/demo/list/list.c——下列四项定义在 list.c,经本头 extern 跨 TU 共享)。----
|
||||
* 暴露为 extern,供宿主测试对真实 demo 状态断言(P1/P2/P3)。 */
|
||||
extern int g_demo; /* 1=处于 demo 演示页 */
|
||||
extern int g_demo_focus; /* 1=LazyColumn 聚焦 */
|
||||
extern int g_demo_focus; /* 1=LazyColumn 聚焦(list.c) */
|
||||
extern int g_demo_scroll; /* 内容区滚动偏移 */
|
||||
extern int g_drag_list; /* 手指在列表:拖拽滚列表 */
|
||||
extern int g_drag_list; /* 手指在列表:拖拽滚列表(list.c) */
|
||||
extern int g_drag_page; /* 手指在页内容:拖拽滚页面 */
|
||||
extern meow_widget *g_dlc; /* LazyColumn */
|
||||
extern meow_widget *g_dlc; /* LazyColumn(list.c) */
|
||||
extern meow_widget *g_dprc; /* ProgressBar 圆形 */
|
||||
extern rect_t r_prc; /* 圆形进度外接框 */
|
||||
extern rect_t r_list; /* 列表区几何 */
|
||||
extern rect_t r_list; /* 列表区几何(list.c) */
|
||||
extern rect_t r_dr1, r_dr2; /* Radio 几何 */
|
||||
|
||||
/* ---- 列表区 CONTAINER 子视图(ui/demo/list/list.c;批③ 视图深度化)----
|
||||
* demo 页把列表逻辑区块抽成 meow_view CONTAINER 子视图挂到 DEMO ACTIVITY view children,
|
||||
* 承接列表交互(tap/down/move/swipe)、列表视图态与列表区块标题 on_draw 直绘。
|
||||
* 嵌套生命周期(list_view_enter/leave)由 demo 页 on_enter/on_leave 驱动(SDK 骨架不递归)。 */
|
||||
meow_view *list_view_create(void); /* 建 CONTAINER 子视图(须即 meow_view_add_child) */
|
||||
meow_view *list_view_get(void); /* 返回子视图(宿主测嵌套 on_enter/on_leave 断言) */
|
||||
void list_view_enter(void); /* 进入子视图(置 ENTERED + on_enter,幂等) */
|
||||
void list_view_leave(void); /* 离开子视图(清 ENTERED + on_leave,幂等) */
|
||||
void list_view_bind(meow_widget *w, rect_t list, rect_t title); /* 内容重建后绑控件+几何+恢复态 */
|
||||
void list_view_release(void); /* 内容释放后摘引用/几何 */
|
||||
int list_view_hit(int x, int y); /* tap 分发给列表区,命中即消费(含选中) */
|
||||
int list_view_down(int x, int y); /* touch_down 命中列表:置 focus+drag_list */
|
||||
int list_view_move(int y); /* touch_move 拖动列表:1=在列表拖动 */
|
||||
int list_view_swipe(int del); /* swipe:列表聚焦时滚列表,1=已消费 */
|
||||
|
||||
/* ---- chrome(ui/common/chrome.c)---- */
|
||||
extern meow_widget *g_tb; /* TopAppBar(chrome 固定) */
|
||||
extern meow_widget *g_nav; /* NavigationBar(chrome 固定) */
|
||||
|
||||
Reference in new issue
Block a user