diff --git a/common.go b/common.go index 28be258..795fd76 100644 --- a/common.go +++ b/common.go @@ -4,7 +4,6 @@ package gui import ( "regexp" - "errors" "go.wit.com/log" "go.wit.com/gui/widget" ) @@ -66,46 +65,12 @@ func (n *Node) AddText(str string) { } } -func (n *Node) SetText(text string) *Node { - log.Log(CHANGE, "SetText() value =", text) - - n.Text = text - n.S = text - - if ! n.hidden { - a := newAction(n, widget.SetText) - sendAction(a) - } - return n -} - func (n *Node) SetNext(w int, h int) { n.NextW = w n.NextH = h log.Info("SetNext() w,h =", n.NextW, n.NextH) } -func (n *Node) Set(val any) { - log.Log(CHANGE, "Set() value =", val) - - switch v := val.(type) { - case bool: - n.B = val.(bool) - case string: - n.Text = val.(string) - n.S = val.(string) - case int: - n.I = val.(int) - default: - log.Error(errors.New("Set() unknown type"), "v =", v) - } - - if ! n.hidden { - a := newAction(n, widget.Set) - sendAction(a) - } -} - func (n *Node) AppendText(str string) { tmp := n.S + str n.Text = tmp @@ -246,7 +211,11 @@ func (n *Node) Window(title string) *Node { } func (n *Node) Ready() bool { - if n == nil {return false} + if n == nil { + log.Warn("Ready() got node == nil") + // TODO: figure out if you can identify the code trace to help find the root cause + return false + } return true } diff --git a/setText.go b/setText.go new file mode 100644 index 0000000..5e04d70 --- /dev/null +++ b/setText.go @@ -0,0 +1,48 @@ +package gui + +// Common actions for widgets like 'Enable' or 'Hide' + +import ( + "errors" + + "go.wit.com/log" + "go.wit.com/gui/widget" +) + +func (n *Node) SetText(text string) *Node { + if ! n.Ready() { return n } + log.Log(CHANGE, "SetText() value =", text) + + n.value = text + + if ! n.hidden { + a := newAction(n, widget.SetText) + a.A = n.value + sendAction(a) + } + return n +} + +func (n *Node) Set(val any) { + log.Log(CHANGE, "Set() value =", val) + + n.value = val + + switch v := val.(type) { + case bool: + n.B = val.(bool) + case string: + n.Text = val.(string) + n.S = val.(string) + case int: + n.I = val.(int) + default: + log.Error(errors.New("Set() unknown type"), "v =", v) + } + + if ! n.hidden { + a := newAction(n, widget.Set) + a.A = val + sendAction(a) + } +}