summaryrefslogtreecommitdiff
path: root/new-structs.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2022-10-20 06:55:42 -0500
committerJeff Carr <[email protected]>2022-10-20 06:55:42 -0500
commitb8ef0bb05dc14bc4291f3d156b199fa125cdb9d7 (patch)
tree71280d7f01805dfbd430f71df16858079686b8fc /new-structs.go
parentf3af1f5b7ff78b3f73d7510622fc9633dec36d35 (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 'new-structs.go')
-rw-r--r--new-structs.go241
1 files changed, 0 insertions, 241 deletions
diff --git a/new-structs.go b/new-structs.go
deleted file mode 100644
index c05bf23..0000000
--- a/new-structs.go
+++ /dev/null
@@ -1,241 +0,0 @@
-package gui
-
-import (
- "log"
-
- // "github.com/davecgh/go-spew/spew"
-
- "github.com/andlabs/ui"
- _ "github.com/andlabs/ui/winmanifest"
-
-)
-
-import toolkit "git.wit.org/wit/gui/toolkit/andlabs"
-
-type Element int
-
-// https://ieftimov.com/post/golang-datastructures-trees/
-const (
- Unknown Element = iota
- Window
- Tab
- Box
- Label
- Combo
-)
-
-func (s Element) String() string {
- switch s {
- case Window:
- return "window"
- case Tab:
- return "tab"
- case Box:
- return "box"
- case Label:
- return "label"
- case Combo:
- return "combo"
- }
- return "unknown"
-}
-
-// The Node is simply the name and the size of whatever GUI element exists
-type Node struct {
- id string
-
- Name string
- Width int
- Height int
-
- parent *Node
- children []*Node
-
- window *GuiWindow
- box *GuiBox
- custom func(*Node)
- OnChanged func(*Node)
-
- Toolkit *toolkit.Toolkit
-
- uiControl *ui.Control
- uiButton *ui.Button
- uiGroup *ui.Group
- uiSlider *ui.Slider
- uiSpinbox *ui.Spinbox
- uiWindow *ui.Window
- uiTab *ui.Tab
- uiBox *ui.Box
- uiText *ui.EditableCombobox
-}
-
-func (n *Node) Parent() *Node {
- return n.parent
-}
-
-func (n *Node) Window() *Node {
- return n.parent
-}
-
-func (n *Node) Dump() {
- IndentPrintln("id = ", n.id)
- IndentPrintln("Name = ", n.Name)
- IndentPrintln("Width = ", n.Width)
- IndentPrintln("Height = ", n.Height)
-
- if (n.parent == nil) {
- IndentPrintln("parent = nil")
- } else {
- IndentPrintln("parent =", n.parent.id)
- }
- if (n.children != nil) {
- IndentPrintln("children = ", n.children)
- }
-
- if (n.window != nil) {
- IndentPrintln("window = ", n.window)
- }
- if (n.box != nil) {
- IndentPrintln("box = ", n.box)
- }
-
- if (n.uiWindow != nil) {
- IndentPrintln("uiWindow = ", n.uiWindow)
- }
- if (n.uiTab != nil) {
- IndentPrintln("uiTab = ", n.uiTab)
- }
- if (n.uiBox != nil) {
- IndentPrintln("uiBox = ", n.uiBox)
- }
- if (n.Toolkit != nil) {
- IndentPrintln("Toolkit = ", n.Toolkit)
- n.Toolkit.Dump()
- }
- if (n.uiControl != nil) {
- IndentPrintln("uiControl = ", n.uiControl)
- }
- if (n.uiButton != nil) {
- IndentPrintln("uiButton = ", n.uiButton)
- }
- if (n.custom != nil) {
- IndentPrintln("custom = ", n.custom)
- }
- if (n.OnChanged != nil) {
- IndentPrintln("OnChanged = ", n.OnChanged)
- }
- if (n.id == "") {
- // Node structs should never have a nil id.
- // I probably shouldn't panic here, but this is just to check the sanity of
- // the gui package to make sure it's not exiting
- panic("gui.Node.Dump() id == nil TODO: make a unigue id here in the golang gui library")
- }
-}
-
-
-func (n *Node) SetBox(box *GuiBox) {
- n.box = box
-}
-
-func (n *Node) SetName(name string) {
- // n.uiType.SetName(name)
- if (n.uiWindow != nil) {
- log.Println("node is a window. setting title =", name)
- n.uiWindow.SetTitle(name)
- return
- }
- log.Println("*ui.Control =", n.uiControl)
- return
-}
-
-func (n *Node) Append(child *Node) {
- // if (n.UiBox == nil) {
- // return
- // }
- n.children = append(n.children, child)
- if (Config.Debug) {
- log.Println("child node:")
- child.Dump()
- log.Println("parent node:")
- n.Dump()
- }
- // time.Sleep(3 * time.Second)
-}
-
-func (n *Node) List() {
- findByIdDFS(n, "test")
-}
-
-var listChildrenParent *Node
-var listChildrenDepth int = 0
-var defaultPadding = " "
-
-func IndentPrintln(a ...interface{}) {
- indentPrintln(listChildrenDepth, defaultPadding, a)
-}
-
-func indentPrintln(depth int, format string, a ...interface{}) {
- var tabs string
- for i := 0; i < depth; i++ {
- tabs = tabs + format
- }
-
- // newFormat := tabs + strconv.Itoa(depth) + " " + format
- newFormat := tabs + format
- log.Println(newFormat, a)
-}
-
-func (n *Node) ListChildren(dump bool) {
- indentPrintln(listChildrenDepth, defaultPadding, n.id, n.Width, n.Height, n.Name)
-
- if (dump == true) {
- n.Dump()
- }
- if len(n.children) == 0 {
- if (n.parent == nil) {
- } else {
- if (Config.DebugNode) {
- log.Println("\t\t\tparent =",n.parent.id)
- }
- if (listChildrenParent != nil) {
- if (Config.DebugNode) {
- log.Println("\t\t\tlistChildrenParent =",listChildrenParent.id)
- }
- if (listChildrenParent.id != n.parent.id) {
- log.Println("parent.child does not match child.parent")
- panic("parent.child does not match child.parent")
- }
- }
- }
- if (Config.DebugNode) {
- log.Println("\t\t", n.id, "has no children")
- }
- return
- }
- for _, child := range n.children {
- // log.Println("\t\t", child.id, child.Width, child.Height, child.Name)
- if (child.parent != nil) {
- if (Config.DebugNode) {
- log.Println("\t\t\tparent =",child.parent.id)
- }
- } else {
- log.Println("\t\t\tno parent")
- panic("no parent")
- }
- if (dump == true) {
- child.Dump()
- }
- if (Config.DebugNode) {
- if (child.children == nil) {
- log.Println("\t\t", child.id, "has no children")
- } else {
- log.Println("\t\t\tHas children:", child.children)
- }
- }
- listChildrenParent = n
- listChildrenDepth += 1
- child.ListChildren(dump)
- listChildrenDepth -= 1
- }
- return
-}