2022-10-20 06:55:42 -05:00
|
|
|
package gui
|
|
|
|
|
2022-11-13 08:53:03 -06:00
|
|
|
func (n *Node) AddDropdownName(name string) {
|
|
|
|
for _, aplug := range allPlugins {
|
2023-02-25 14:05:25 -06:00
|
|
|
log(debugGui, "gui.AddDropdownName() aplug =", aplug.name, "name =", name)
|
2022-11-13 08:53:03 -06:00
|
|
|
if (aplug.AddDropdownName == nil) {
|
2023-02-25 14:05:25 -06:00
|
|
|
log(debugGui, "\tgui.AddDropdownName() aplug.NewDropdown = nil", aplug.name)
|
2022-11-13 08:53:03 -06:00
|
|
|
continue
|
2022-11-05 10:19:04 -05:00
|
|
|
}
|
2022-11-13 08:53:03 -06:00
|
|
|
aplug.AddDropdownName(&n.Widget, name)
|
2022-10-21 11:40:08 -05:00
|
|
|
}
|
2023-02-25 14:05:25 -06:00
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
*/
|
2022-10-21 11:40:08 -05:00
|
|
|
}
|
|
|
|
|
2023-02-25 14:05:25 -06:00
|
|
|
func (n *Node) SetDropdown(s any) {
|
|
|
|
log(debugGui, "gui.SetDropdown() TODO: make this work. s =", s)
|
2022-10-20 06:55:42 -05:00
|
|
|
}
|
|
|
|
|
2023-02-25 14:05:25 -06:00
|
|
|
func (n *Node) SetDropdownChange(f func()) {
|
|
|
|
n.Widget.Custom = f
|
|
|
|
}
|
|
|
|
|
|
|
|
func (n *Node) NewDropdown(name string) *Node {
|
|
|
|
newNode := n.New(name, "Dropdown")
|
2022-10-20 06:55:42 -05:00
|
|
|
|
2022-11-13 08:53:03 -06:00
|
|
|
for _, aplug := range allPlugins {
|
2023-02-25 14:05:25 -06:00
|
|
|
log(debugGui, "gui.NewDropdown() aplug =", aplug.name, "name =", newNode.Widget.Name)
|
2022-11-13 08:53:03 -06:00
|
|
|
if (aplug.NewDropdown == nil) {
|
2023-02-25 14:05:25 -06:00
|
|
|
log(debugGui, "\tgui.NewDropdown() aplug.NewDropdown = nil", aplug.name)
|
2022-11-13 08:53:03 -06:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
aplug.NewDropdown(&n.Widget, &newNode.Widget)
|
|
|
|
}
|
2023-02-25 14:05:25 -06:00
|
|
|
|
|
|
|
// TODO, this doesn't work for some reason (over-written by plugin?)
|
|
|
|
newNode.Widget.Custom = func() {
|
|
|
|
log(true, "gui.NewDropdown() START Custom()")
|
|
|
|
}
|
2022-11-13 08:53:03 -06:00
|
|
|
return newNode
|
2022-10-20 06:55:42 -05:00
|
|
|
}
|