MujicaUI

Terminal & Code · #335

DebugToolbar 浅色主题渲染快照
浅色 · 渲染快照
DebugToolbar 深色主题渲染快照
深色 · 渲染快照

335 DebugToolbar · 调试工具栏

用途

调试会话的继续/暂停、单步跳过、单步进入、单步跳出、重启与停止,按会话状态禁用不适用的按钮,并注册常用快捷键。

最小示例

state := code.DebugPaused
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	switch code.DebugToolbar(c, state, code.DebugToolbarOptions{}).Action {
	case code.DebugContinue:
		state = code.DebugRunning
	case code.DebugStop:
		state = code.DebugStopped
	}
}
ui.Render(view, 400, 300, 1)

参数

func DebugToolbar(c *ui.Context, state DebugState, opts DebugToolbarOptions) DebugToolbarResult。DebugEnabled(state, action) 给出禁用规则:运行中只能暂停、重启、停止;暂停时可继续、单步、重启、停止;停止时只能“开始”(DebugContinue)。

字段类型默认值含义
stateDebugState—DebugStopped、DebugRunning、DebugPaused;越界 panic。
Disabledboolfalse全部按钮与快捷键无效。

状态

运行中第一个按钮显示暂停,否则显示继续(停止时名为“开始”);不适用的按钮禁用;按钮悬停、按下、焦点环与带快捷键的提示。

事件

Action:本帧请求的 DebugAction,无则为 DebugNone。

键盘操作

  • F5 继续/开始,F6 暂停,F10 单步跳过,F11 单步进入,Shift+F11 单步跳出,Cmd/Ctrl+Shift+F5 重启,Shift+F5 停止(窗口内全局,焦点控件优先处理)。
  • 工具栏是一个 Tab 停靠点,←/→ 在按钮间移动。

限制

  • 快捷键固定,不可配置;同一窗口只放一个调试工具栏。
  • 图标为自绘 SVG。