summaryrefslogtreecommitdiff
path: root/new-structs.go
diff options
context:
space:
mode:
Diffstat (limited to 'new-structs.go')
-rw-r--r--new-structs.go96
1 files changed, 61 insertions, 35 deletions
diff --git a/new-structs.go b/new-structs.go
index b70623e..a24262d 100644
--- a/new-structs.go
+++ b/new-structs.go
@@ -21,8 +21,9 @@ type Node struct {
box *GuiBox
- control *ui.Control
- window *ui.Window
+ uiControl *ui.Control
+ uiWindow *ui.Window
+ uiTab *ui.Tab
}
func (n *Node) Parent() *Node {
@@ -34,44 +35,50 @@ func (n *Node) Window() *Node {
}
func (n *Node) Dump() {
- log.Println("gui.Node.Dump() id = ", n.id)
- log.Println("gui.Node.Dump() Name = ", n.Name)
- log.Println("gui.Node.Dump() Width = ", n.Width)
- log.Println("gui.Node.Dump() Height = ", n.Height)
- log.Println("gui.Node.Dump() parent = ", n.parent)
- log.Println("gui.Node.Dump() children = ", n.children)
- log.Println("gui.Node.Dump() box = ", n.box)
- log.Println("gui.Node.Dump() control = ", n.control)
- log.Println("gui.Node.Dump() window = ", n.window)
+ log.Println("gui.Node.Dump() id = ", n.id)
+ log.Println("gui.Node.Dump() Name = ", n.Name)
+ log.Println("gui.Node.Dump() Width = ", n.Width)
+ log.Println("gui.Node.Dump() Height = ", n.Height)
+ log.Println("gui.Node.Dump() parent = ", n.parent)
+ log.Println("gui.Node.Dump() children = ", n.children)
+ log.Println("gui.Node.Dump() box = ", n.box)
+ log.Println("gui.Node.Dump() uiControl = ", n.uiControl)
+ log.Println("gui.Node.Dump() uiWindow = ", n.uiWindow)
+ log.Println("gui.Node.Dump() uiTab = ", n.uiTab)
}
func (n *Node) SetName(name string) {
// n.uiType.SetName(name)
- if (n.window != nil) {
+ if (n.uiWindow != nil) {
log.Println("node is a window. setting title =", name)
- n.window.SetTitle(name)
+ n.uiWindow.SetTitle(name)
return
}
- log.Println("*ui.Control =", n.control)
+ log.Println("*ui.Control =", n.uiControl)
return
}
+func (n *Node) FindTab() *ui.Tab {
+ return n.uiTab
+}
+
func (n *Node) FindWindowBox() *GuiBox {
if (n.box == nil) {
log.Println("SERIOUS ERROR n.box == nil in FindWindowBox()")
log.Println("SERIOUS ERROR n.box == nil in FindWindowBox()")
log.Println("SERIOUS ERROR n.box == nil in FindWindowBox()")
log.Println("SERIOUS ERROR n.box == nil in FindWindowBox()")
+ os.Exit(-1)
}
return n.box
}
-func (n *Node) Append(child Node) {
+func (n *Node) Append(child *Node) {
// if (n.UiBox == nil) {
// return
// }
- // n.uiType.Append(child, x)
+ n.children = append(n.children, child)
}
func (n *Node) List() {
findByIdDFS(n, "test")
@@ -79,6 +86,7 @@ func (n *Node) List() {
func findByIdDFS(node *Node, id string) *Node {
log.Println("findByIdDFS()", id, node)
+ node.Dump()
if node.id == id {
log.Println("Found node id =", id, node)
return node
@@ -86,46 +94,64 @@ func findByIdDFS(node *Node, id string) *Node {
if len(node.children) > 0 {
for _, child := range node.children {
- findByIdDFS(child, id)
+ newNode := findByIdDFS(child, id)
+ if (newNode != nil) {
+ return newNode
+ }
}
}
return nil
}
-func (n *Node) InitTab(title string, custom func() ui.Control) *Node {
- boxs := n.box
- if boxs == nil {
- log.Println("gui.InitTab() 1 Fuck node = ", n)
- n.Dump()
- os.Exit(-1)
+func findByName(node *Node, name string) *Node {
+ log.Println("findByName()", name, node)
+ node.Dump()
+ if node.Name == name {
+ log.Println("findByName() Found node name =", name, node)
+ return node
+ }
+
+ if len(node.children) > 0 {
+ for _, child := range node.children {
+ newNode := findByName(child, name)
+ if (newNode != nil) {
+ return newNode
+ }
+ }
}
- if boxs.Window == nil {
- log.Println("gui.InitTab() 2 Fuck node = ", n)
+ return nil
+}
+
+func (n *Node) InitTab(title string, custom func() ui.Control) *Node {
+ if n.uiWindow == nil {
+ log.Println("gui.InitTab() ERROR ui.Window == nil")
n.Dump()
os.Exit(-1)
- return nil
}
- if boxs.Window.UiWindow == nil {
- log.Println("gui.InitTab() 3 Fuck node = ", n)
+ if n.box != nil {
+ log.Println("gui.InitTab() ERROR box already exists")
n.Dump()
os.Exit(-1)
- return nil
}
- window := boxs.Window.UiWindow
tab := ui.NewTab()
- window.SetChild(tab)
- window.SetMargined(true)
+ n.uiWindow.SetChild(tab)
+ n.uiWindow.SetMargined(true)
tab.Append(title, custom())
tab.SetMargined(0, true)
- // tab.SetMargined(1, true)
- boxs.Window.UiTab = tab
+ var newNode Node
+ newNode.Name = title
+ newNode.parent = n
+ n.Append(&newNode)
+ newNode.uiTab = tab
+ /*
if boxs.node == nil {
log.Println("gui.InitTab() 4 Fuck node = ", n)
n.Dump()
os.Exit(-1)
}
- return n
+ */
+ return &newNode
}