ui/core
所有界面模块的地基:
| 名字 | 作用 |
|---|---|
Widget |
接口:能 Layout 的东西。所有组件、容器都实现它 |
Func |
把一段 Gio 布局函数当组件用 |
DecodeImage(ctx, source) |
读取本地/HTTP/data 图片,限制编码大小与像素数;须在后台调用并管理超时 |
Update(fn) |
从任意 goroutine 修改界面:fn 在下一帧执行 |
Call(gtx, fn) |
给写组件的人用:执行用户回调并让所有窗口重绘 |
Semantic(gtx, w, ops...)、Role(...) |
给写组件的人用:声明组件的角色、名字、状态,让 Agent 看得见 |
WindowControls、CurrentWindow() |
组件拿到所在窗口的激活状态、标题区域登记、最小化、最大化、关闭能力,自定义标题栏用。ui/window 在布局期间登记当前窗口 |
- 依赖:只依赖 Gio,以及内部的
ui/internal/loop。 - 被谁依赖:
el、kit、window、markdown。
线程规则:回调里直接改组件;其他 goroutine 改组件包进 core.Update。原因见 架构 · 线程规则。