diff options
Diffstat (limited to 'dropdown.go')
| -rw-r--r-- | dropdown.go | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/dropdown.go b/dropdown.go index f500c55..e999f7e 100644 --- a/dropdown.go +++ b/dropdown.go @@ -1,31 +1,53 @@ package gui -import "log" - func (n *Node) AddDropdownName(name string) { for _, aplug := range allPlugins { - log.Println("gui.AddDropdownName() aplug =", aplug.name, "name =", name) + log(debugGui, "gui.AddDropdownName() aplug =", aplug.name, "name =", name) if (aplug.AddDropdownName == nil) { - log.Println("\tgui.AddDropdownName() aplug.NewDropdown = nil", aplug.name) + log(debugGui, "\tgui.AddDropdownName() aplug.NewDropdown = nil", aplug.name) continue } aplug.AddDropdownName(&n.Widget, name) } + + if (n.Widget.Custom == nil) { + n.SetDropdownChange( func() { + log(debugChange, "gui.Dropdown change() REAL Custom() name =", name) + log(debugChange, "gui.Dropdown change() REAL n.Widget.S =", n.Widget.S) + }) + } + // TODO, this makes functions over and over for each dropdown menu + /* + n.Widget.Custom = func() { + log(debugChange, "gui.Dropdown change() START Custom() name =", name) + log(debugChange, "gui.Dropdown change() START n.Widget.S =", n.Widget.S) + } + */ } -func (n *Node) SetDropdown(i int) { +func (n *Node) SetDropdown(s any) { + log(debugGui, "gui.SetDropdown() TODO: make this work. s =", s) } -func (n *Node) NewDropdown(text string) *Node { - newNode := n.New(text) +func (n *Node) SetDropdownChange(f func()) { + n.Widget.Custom = f +} + +func (n *Node) NewDropdown(name string) *Node { + newNode := n.New(name, "Dropdown") for _, aplug := range allPlugins { - log.Println("gui.NewDropdown() aplug =", aplug.name, "name =", newNode.Widget.Name) + log(debugGui, "gui.NewDropdown() aplug =", aplug.name, "name =", newNode.Widget.Name) if (aplug.NewDropdown == nil) { - log.Println("\tgui.NewDropdown() aplug.NewDropdown = nil", aplug.name) + log(debugGui, "\tgui.NewDropdown() aplug.NewDropdown = nil", aplug.name) continue } aplug.NewDropdown(&n.Widget, &newNode.Widget) } + + // TODO, this doesn't work for some reason (over-written by plugin?) + newNode.Widget.Custom = func() { + log(true, "gui.NewDropdown() START Custom()") + } return newNode } |
