package gui import ( "go.wit.com/lib/widget" "go.wit.com/log" ) // tracks dropdown and combobox entries. Makes sure they are unique func (n *Node) addText(newS string) { var highest int for s, i := range n.strings { if i > highest { highest = i } if s == newS { return } } n.strings[newS] = highest + 1 // TODO: use the int's for the order n.value = newS /* // time.Sleep(time.Duration(1000 * time.Nanosecond)) // doesn't work // maybe this stupid chipset is defective. TODO: try on different hardware // tried with go 1.21.4 debian sid mylock.Lock() n.mu.Lock() // time.Sleep(time.Duration(10 * time.Microsecond)) // doesn't work time.Sleep(time.Duration(100 * time.Microsecond)) // does work n.strings = append(n.strings, newS) n.mu.Unlock() mylock.Unlock() log.Warn("addText() has strings:", n.strings) */ // inform the toolkits sendAction(n, widget.AddText) } // add a new text string to widgets that support // multiple string values // These must be unique. return false if the string already exists func (n *Node) AddText(str string) bool { if !n.Ready() { return false } log.Warn("AddText() value =", str) log.Warn("AddText() value =", str) log.Warn("AddText() value =", str) // for some reason, the n.mu.Lock() doesn't seem to protect the append() function on strings // switched to a map. I suspect that is what maps are for because they are safer n.addText(str) return true }