diff options
| author | Jeff Carr <[email protected]> | 2021-10-07 06:48:50 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2021-10-07 06:48:50 -0500 |
| commit | 9aa141261b89e218d121498f37144db822c09ea7 (patch) | |
| tree | 82b7fb11efafc765becc29f7fdfdab049a41da56 /new-structs.go | |
| parent | 54cf41663c2d94182370a2a4b14526f35c601131 (diff) | |
NODE: continued work on implementing a node tree
Diffstat (limited to 'new-structs.go')
| -rw-r--r-- | new-structs.go | 62 |
1 files changed, 62 insertions, 0 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 +} |
