new-gui/dropdown.go

54 lines
1.5 KiB
Go
Raw Normal View History

package gui
func (n *Node) AddDropdownName(name string) {
for _, aplug := range allPlugins {
log(debugGui, "gui.AddDropdownName() aplug =", aplug.name, "name =", name)
if (aplug.AddDropdownName == nil) {
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(s any) {
log(debugGui, "gui.SetDropdown() TODO: make this work. s =", s)
}
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(debugGui, "gui.NewDropdown() aplug =", aplug.name, "name =", newNode.Widget.Name)
if (aplug.NewDropdown == nil) {
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
}