summaryrefslogtreecommitdiff
path: root/andlabs/dropdown.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-17 21:31:49 -0600
committerJeff Carr <[email protected]>2024-01-17 21:31:49 -0600
commit841e6252c95244f0ee7faf2c01d33f69a8ab483a (patch)
treeef400228622b87611168db2227269ba7fd56625d /andlabs/dropdown.go
parentba95c13799740b5f55541fc5e8ab9f1d34f7e421 (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.go72
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
}