summaryrefslogtreecommitdiff
path: root/dropdown.go
diff options
context:
space:
mode:
Diffstat (limited to 'dropdown.go')
-rw-r--r--dropdown.go40
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
}