用途:用于 Makepad 的事件与动作处理,覆盖鼠标、键盘、触摸、生命周期事件,以及组件与父级之间的动作通信和事件传播。
主要能力:Event 枚举包含生命周期(Startup、Shutdown、Foreground、Background、Resume、Pause)、绘制、窗口、鼠标、触摸、键盘、Timer、NextFrame、网络响应和 Actions 等变体。Hit 枚举用于判断事件是否命中组件区域,包含 FingerDown、FingerUp、FingerHoverIn/Over/Out、FingerLongPress、KeyDown、KeyUp、KeyFocus、TextInput、TextCopy 等。
使用方式:在组件的 handle_event 中用 event.hits(cx, self.area()) 匹配命中结果;动作通过 cx.action(...) 发出,异步线程可用 Cx::post_action(...);父级通过 cx.capture_actions(|cx| { ... }) 捕获子组件动作,再用 clicked、pressed、released、changed、returned 等辅助方法或 downcast_ref 判断。事件自平台层经根组件向下传播,动作则由子组件向上传递。Timer 用 cx.start_timer(1.0),NextFrame 用 cx.new_next_frame()。派生宏 DefaultNone 可为枚举自动实现 Default。
适用场景:需要处理输入、生命周期或 UI 交互,涉及 handle_event、Event 变体、Hit 处理或组件动作传播,或需设计、调试事件与动作流。
限制:应仅在任务明确匹配上述范围时使用。引用的 ./references/event-system.md 与 ./references/action-system.md 为外部前置依赖,不在本目录内,需自行获取并确认许可与运行前提;文件不存在或为空时不要编造,可基于 SKILL.md 模式与内置知识作答,建议运行 /sync-crate-skills makepad --force 更新文档。输出不能替代针对具体环境的验证、测试与专家评审;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。