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 /new-structs.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 'new-structs.go')
| -rw-r--r-- | new-structs.go | 241 |
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 -} |
