From b288902b1c66d9ece6f90685d90ed632253d424c Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 7 Oct 2021 06:48:50 -0500 Subject: [PATCH] NODE: continued work on implementing a node tree --- new-structs.go | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ structs.go | 19 +--------------- window.go | 2 +- 3 files changed, 64 insertions(+), 19 deletions(-) diff --git a/new-structs.go b/new-structs.go index d6ff409..b70623e 100644 --- a/new-structs.go +++ b/new-structs.go @@ -2,6 +2,7 @@ package gui import ( "log" + "os" "github.com/andlabs/ui" _ "github.com/andlabs/ui/winmanifest" @@ -15,13 +16,36 @@ type Node struct { Width int Height int + parent *Node children []*Node + box *GuiBox control *ui.Control window *ui.Window } +func (n *Node) Parent() *Node { + return n.parent +} + +func (n *Node) Window() *Node { + return n.parent +} + +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) +} + + func (n *Node) SetName(name string) { // n.uiType.SetName(name) if (n.window != nil) { @@ -67,3 +91,41 @@ func findByIdDFS(node *Node, id string) *Node { } 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) + } + if boxs.Window == nil { + log.Println("gui.InitTab() 2 Fuck node = ", n) + n.Dump() + os.Exit(-1) + return nil + } + if boxs.Window.UiWindow == nil { + log.Println("gui.InitTab() 3 Fuck node = ", n) + n.Dump() + os.Exit(-1) + return nil + } + + window := boxs.Window.UiWindow + tab := ui.NewTab() + window.SetChild(tab) + window.SetMargined(true) + + tab.Append(title, custom()) + tab.SetMargined(0, true) + // tab.SetMargined(1, true) + + boxs.Window.UiTab = tab + if boxs.node == nil { + log.Println("gui.InitTab() 4 Fuck node = ", n) + n.Dump() + os.Exit(-1) + } + return n +} diff --git a/structs.go b/structs.go index e1993a9..9cec347 100644 --- a/structs.go +++ b/structs.go @@ -3,7 +3,6 @@ package gui import ( "image/color" "log" - "os" "github.com/andlabs/ui" "golang.org/x/image/font" @@ -135,23 +134,6 @@ func (s GuiBox) Append(child ui.Control, x bool) { } /* -func (w GuiWindow) InitWindow(title string) *GuiBox { - if w.UiWindow == nil { - log.Println("gui.InitBox() THIS SHOULD NEVER HAPPEN. Window doesn't exist", w) - return nil - } - tab := ui.NewTab() - w.UiWindow.SetChild(tab) - w.UiWindow.SetMargined(true) - - tab.Append(title, InitBlankWindow()) - tab.SetMargined(0, true) - - w.UiTab = tab - return nil -} -*/ - func (s GuiBox) InitTab(title string, custom func() ui.Control) *Node { if s.Window == nil { return nil @@ -176,6 +158,7 @@ func (s GuiBox) InitTab(title string, custom func() ui.Control) *Node { } return s.node } +*/ func (s *GuiBox) AddTab(title string, custom ui.Control) *ui.Tab { if s.Window == nil { diff --git a/window.go b/window.go index 960c8bf..cd03a7d 100644 --- a/window.go +++ b/window.go @@ -154,7 +154,7 @@ func CreateWindow(title string, tabname string, x int, y int, custom func() ui.C log.Println("SERIOUS ERROR n.box == nil in CreateWindow()") log.Println("SERIOUS ERROR n.box == nil in CreateWindow()") } - n.box.InitTab(title, custom) + n.InitTab(title, custom) return n }