/* A Labeled label: ----------------------------- | | | | Food: | Apple | | | | ----------------------------- */ package gadgets import ( "go.wit.com/gui" "go.wit.com/log" ) type OneLiner struct { p *gui.Node // parent widget l *gui.Node // label widget v *gui.Node // value widget Custom func() } func (n *OneLiner) String() string { return n.v.String() } func (n *OneLiner) SetText(s string) *OneLiner { log.Log(INFO, "OneLiner.Set() =", s) n.v.SetLabel(s) return n } func (n *OneLiner) SetLabel(value string) *OneLiner { log.Log(INFO, "OneLiner.SetLabel() =", value) if n.l != nil { n.l.SetLabel(value) } return n } func (n *OneLiner) Enable() { log.Log(INFO, "OneLiner.Enable()") if n.v != nil { n.v.Show() } } func (n *OneLiner) Disable() { log.Log(INFO, "OneLiner.Disable()") if n.v != nil { n.v.Hide() } } func NewOneLiner(n *gui.Node, label string) *OneLiner { d := OneLiner{ p: n, } // various timeout settings d.l = n.NewLabel(label) d.v = n.NewLabel("") d.v.Custom = func() { log.Log(INFO, "OneLiner.Custom() user changed value to =", d.v.String()) } return &d }