func edit(t *ink.Txt) { in := t.Events() for ev := range in { cmd.Warn("got text: %v", ev.Args) switch ev.Args[0] { case "start": continue // Example: keep only a single view vs := t.Views() for _, v := range vs { if v != ev.Src { t.CloseView(v) } } // Example: do some edits from the program. go edits(t) case "tag": if len(ev.Args) == 1 || ev.Args[1] != "Del" { continue } t.Close() case "end": // Example: delete the text when all views are gone vs := t.Views() cmd.Dprintf("views %v\n", t.Views()) if len(vs) == 0 { t.Close() return } } } }