func NewBug(p chan string, btype έντομο.Type) gui.Widget { attrs := append([]string{"title"}, bug.ListAttributes()...) fields := []gui.Widget{} b := btype.Create() for _, attr := range attrs { fields = append(fields, gui.Row(gui.Text(attr+":"), AttributeChooser(b, attr, WriteLater))) } maintext := gui.TextArea("") fields = append(fields, gui.Text("Comment:")) fields = append(fields, maintext) submit := gui.Button("Submit bug") go func() { mainstr := "" for { select { case mainstr = <-maintext.Changes(): // Nothing to do... case _ = <-submit.Clicks(): b.ScheduleChange(mainstr) b.FlushPending() p <- "/" return } } }() fields = append(fields, submit) return gui.Column(fields...) }