diff options
| author | Jeff Carr <[email protected]> | 2024-01-17 21:31:49 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-17 21:31:49 -0600 |
| commit | 841e6252c95244f0ee7faf2c01d33f69a8ab483a (patch) | |
| tree | ef400228622b87611168db2227269ba7fd56625d /andlabs/dropdown.go | |
| parent | ba95c13799740b5f55541fc5e8ab9f1d34f7e421 (diff) | |
common tree package for toolkitsv0.12.4
This update provides *lots* of toolkit updates. This will allow
the next step of debugging the gocui toolkit to make it work
again. There are new common routines for handling the plugin
channel communication
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'andlabs/dropdown.go')
| -rw-r--r-- | andlabs/dropdown.go | 72 |
1 files changed, 41 insertions, 31 deletions
diff --git a/andlabs/dropdown.go b/andlabs/dropdown.go index 0795264..6a1bd64 100644 --- a/andlabs/dropdown.go +++ b/andlabs/dropdown.go @@ -5,12 +5,13 @@ import ( _ "go.wit.com/dev/andlabs/ui/winmanifest" "go.wit.com/log" - "go.wit.com/gui/widget" + "go.wit.com/gui/toolkits/tree" ) -func (p *node) newDropdown(n *node) { +func newDropdown(p, n *tree.Node) { + if notNew(n) { return } newt := new(guiWidget) - log.Log(INFO, "gui.Toolbox.newDropdown() START", n.progname) + log.Log(INFO, "gui.Toolbox.newDropdown() START", n.GetProgName()) cb := ui.NewCombobox() newt.uiCombobox = cb @@ -24,60 +25,69 @@ func (p *node) newDropdown(n *node) { i := spin.Selected() if (newt.val == nil) { log.Log(ERROR, "make map didn't work") - n.value = "map did not work. ui.Combobox error" + n.SetValue("map did not work. ui.Combobox error") } else { - n.value = newt.val[i] + n.SetValue(newt.val[i]) } - n.doUserEvent() + me.myTree.DoUserEvent(n) }) - n.tk = newt - p.place(n) + n.TK = newt + place(p, n) - if n.strings == nil {return} + log.Warn("add dropdown entries on create:", n.State.Strings) + log.Warn("add dropdown entries on create:", n.State.Strings) + log.Warn("add dropdown entries on create:", n.State.Strings) + if n.State.Strings == nil {return} // add the initial dropdown entries - for i, s := range n.strings { - log.Warn("add dropdown: add entries on create", n.progname, i, s) - n.addDropdownName(s) + for i, s := range n.State.Strings { + log.Warn("add dropdown: add entries on create", n.GetProgName(), i, s) + addDropdownName(n, s) } - cur := widget.GetString(n.value) - log.Warn("add dropdown: set default value on create", n.progname, cur) - n.setDropdownName(cur) + cur := n.String() + log.Warn("add dropdown: set default value on create", n.GetProgName(), cur) + setDropdownName(n, cur) } -func (n *node) SetDropdownInt(i int) { - if ! n.ready() { return } - n.tk.uiCombobox.SetSelected(i) +func setDropdownInt(n *tree.Node, i int) { + if ! ready(n) { return } + var tk *guiWidget + tk = n.TK.(*guiWidget) + tk.uiCombobox.SetSelected(i) } -func (n *node) addDropdownName(s string) { - if ! n.ready() { return } +func addDropdownName(n *tree.Node, s string) { + if ! ready(n) { return } + var tk *guiWidget + tk = n.TK.(*guiWidget) log.Log(INFO, "addDropdownName()", n.WidgetId, "add:", s) - n.tk.uiCombobox.Append(s) - if (n.tk.val == nil) { + tk.uiCombobox.Append(s) + if (tk.val == nil) { log.Log(INFO, "make map didn't work") return } - n.tk.val[n.tk.c] = s + tk.val[tk.c] = s // If this is the first menu added, set the dropdown to it - if (n.tk.c == 0) { + if (tk.c == 0) { log.Log(INFO, "THIS IS THE FIRST Dropdown", s) - n.tk.uiCombobox.SetSelected(0) + tk.uiCombobox.SetSelected(0) } - n.tk.c = n.tk.c + 1 + tk.c = tk.c + 1 } -func (n *node) setDropdownName(s string) bool { - if ! n.ready() { return false} +func setDropdownName(n *tree.Node, s string) bool { + if ! ready(n) { return false} + var tk *guiWidget + tk = n.TK.(*guiWidget) log.Log(INFO, "SetDropdownName()", n.WidgetId, ",", s) - for i, tmp := range n.tk.val { + for i, tmp := range tk.val { if s == tmp { - n.value = s - n.SetDropdownInt(i) + n.SetValue(s) + setDropdownInt(n, i) log.Warn("SetDropdownInt() worked", tmp, i) return true } |
