diff options
| author | Jeff Carr <[email protected]> | 2022-10-20 06:55:42 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2022-10-20 06:55:42 -0500 |
| commit | b8ef0bb05dc14bc4291f3d156b199fa125cdb9d7 (patch) | |
| tree | 71280d7f01805dfbd430f71df16858079686b8fc /toolkit/andlabs/dropdown.go | |
| parent | f3af1f5b7ff78b3f73d7510622fc9633dec36d35 (diff) | |
Squashed commit of the following:
all non binary tree structs are gone (almost all)
Use names from https://en.wikipedia.org/wiki/Graphical_widget
toolkit andlabs/ui is isolated from being accessable
all direct references to andlabs are removed
working dropdown widgets
add debugging more buttons and windows
Diffstat (limited to 'toolkit/andlabs/dropdown.go')
| -rw-r--r-- | toolkit/andlabs/dropdown.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/toolkit/andlabs/dropdown.go b/toolkit/andlabs/dropdown.go new file mode 100644 index 0000000..14cbf14 --- /dev/null +++ b/toolkit/andlabs/dropdown.go @@ -0,0 +1,74 @@ +package toolkit + +import "log" +import "os" +// import "time" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +import "github.com/davecgh/go-spew/spew" + +func (pt *Toolkit) NewDropdown(title string) *Toolkit { + // make new node here + log.Println("gui.Toolbox.NewDropdownCombobox()") + var newt Toolkit + + if (pt.uiBox == nil) { + log.Println("gui.ToolboxNode.NewDropdown() node.UiBox == nil. I can't add a range UI element without a place to put it") + os.Exit(0) + return nil + } + + s := ui.NewCombobox() + newt.uiCombobox = s + newt.uiBox = pt.uiBox + pt.uiBox.Append(s, false) + + // initialize the index + newt.c = 0 + newt.val = make(map[int]string) + + s.OnSelected(func(spin *ui.Combobox) { + i := spin.Selected() + if (newt.val == nil) { + log.Println("make map didn't work") + os.Exit(0) + } + newt.text = newt.val[i] + val := newt.text + log.Println("gui.Toolbox.ui.Dropdown.OnChanged() val =", i, val) + if (DebugToolkit) { + log.Println("gui.Toolbox.ui.OnChanged() val =", i, val) + scs := spew.ConfigState{MaxDepth: 1} + scs.Dump(newt) + } + if (newt.OnChanged != nil) { + log.Println("gui.Toolbox.OnChanged() trying to run toolkit.OnChanged() entered val =", i, val) + newt.OnChanged(&newt) + return + } + if (newt.Custom != nil) { + log.Println("gui.Toolbox.OnChanged() Running toolkit.Custom()", i, val) + newt.Custom() + return + } + log.Println("gui.Toolbox.Dropdown.OnChanged() ENDED without finding any callback", i, val) + }) + + return &newt +} + +func (t *Toolkit) AddDropdown(title string) { + t.uiCombobox.Append(title) + if (t.val == nil) { + log.Println("make map didn't work") + return + } + t.val[t.c] = title + t.c = t.c + 1 +} + +func (t Toolkit) SetDropdown(i int) { + t.uiCombobox.SetSelected(i) +} |
