/* A Labeled label: ----------------------------- | | | | Food: | Apple | | | | ----------------------------- */ package gadgets import ( "go.wit.com/log" "go.wit.com/gui/gui" ) 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.SetText(s) return n } func (n *OneLiner) SetLabel(value string) *OneLiner { log.Log(INFO, "OneLiner.SetLabel() =", value) if (n.l != nil) { n.l.Set(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 }