diff options
| author | Jeff Carr <[email protected]> | 2024-01-17 21:31:49 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-01-17 21:31:49 -0600 |
| commit | 841e6252c95244f0ee7faf2c01d33f69a8ab483a (patch) | |
| tree | ef400228622b87611168db2227269ba7fd56625d /andlabs/place.go | |
| parent | ba95c13799740b5f55541fc5e8ab9f1d34f7e421 (diff) | |
common tree package for toolkitsv0.12.4
This update provides *lots* of toolkit updates. This will allow
the next step of debugging the gocui toolkit to make it work
again. There are new common routines for handling the plugin
channel communication
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'andlabs/place.go')
| -rw-r--r-- | andlabs/place.go | 87 |
1 files changed, 53 insertions, 34 deletions
diff --git a/andlabs/place.go b/andlabs/place.go index 94a16b2..25672e7 100644 --- a/andlabs/place.go +++ b/andlabs/place.go @@ -1,12 +1,15 @@ package main import ( + // "os" "go.wit.com/dev/andlabs/ui" _ "go.wit.com/dev/andlabs/ui/winmanifest" "go.wit.com/log" "go.wit.com/gui/widget" + + "go.wit.com/gui/toolkits/tree" ) // This routine is very specific to this toolkit @@ -33,62 +36,78 @@ import ( // -- (0,0) -- (1,0) -- (1,0) -- // -- (0,1) -- (1,1) -- (1,1) -- // ----------------------------- -func (p *node) place(n *node) bool { - log.Log(INFO, "place() START", n.WidgetType, n.progname) - if (p.tk == nil) { - log.Log(ERROR, "p.tk == nil", p.progname, p.ParentId, p.WidgetType, p.tk) - log.Log(ERROR, "n = ", n.progname, n.ParentId, n.WidgetType, n.tk) - panic("p.tk == nil") +func place(p *tree.Node, n *tree.Node) bool { + log.Warn("SPEEDY newplace() 1 START", n.WidgetId, n.GetProgName(), n.GetLabel(), n.String()) + log.Warn("SPEEDY newplace() n.State.Strings =", n.State.Strings) + log.Log(INFO, "place() 1 START", n.WidgetType, n.GetProgName(), n.GetLabel()) + if ! ready(n) { + log.Warn("place() 1 START not ready()") + return false + } + log.Log(INFO, "place() 1 START ready()") + var tk, ptk *guiWidget + tk = n.TK.(*guiWidget) + ptk = p.TK.(*guiWidget) + log.Warn("SPEEDY newplace() 2 START", n.WidgetId, n.GetProgName(), n.GetLabel()) + + if (ptk == nil) { + log.Log(ERROR, "ptk == nil", p.GetProgName(), p.ParentId, p.WidgetType, ptk) + log.Log(ERROR, "n = ", n.GetProgName(), n.ParentId, n.WidgetType, tk) + log.Warn("SPEEDY ptk == nil", n.WidgetId, n.GetProgName()) + log.Sleep(1) + panic("ptk == nil") } log.Log(INFO, "place() switch", p.WidgetType) + log.Warn("SPEEDY newplace() before switch", n.WidgetId, n.GetProgName()) switch p.WidgetType { case widget.Grid: - log.Log(INFO, "place() Grid try at Parent X,Y =", n.X, n.Y) - n.tk.gridX = n.AtW - 1 - n.tk.gridY = n.AtH - 1 - log.Log(INFO, "place() Grid try at gridX,gridY", n.tk.gridX, n.tk.gridY) - // at the very end, subtract 1 from X & Y since andlabs/ui starts counting at zero - p.tk.uiGrid.Append(n.tk.uiControl, - n.tk.gridX, n.tk.gridY, 1, 1, + tk.gridX = n.State.GridOffset.X - 1 + tk.gridY = n.State.GridOffset.Y - 1 + log.Warn("place() on Grid at gridX,gridY", tk.gridX, tk.gridY) + ptk.uiGrid.Append(tk.uiControl, + tk.gridX, tk.gridY, 1, 1, false, ui.AlignFill, false, ui.AlignFill) return true case widget.Group: - if (p.tk.uiBox == nil) { - log.Log(WARN, "place() andlabs hack group to use add a box", n.progname, n.WidgetType) - p.tk.uiBox = n.rawBox() - p.tk.uiGroup.SetChild(p.tk.uiBox) + if (ptk.uiBox == nil) { + log.Log(WARN, "place() andlabs hack group to use add a box", n.GetProgName(), n.WidgetType) + ptk.uiBox = rawBox(n) + ptk.uiGroup.SetChild(ptk.uiBox) } - p.tk.uiBox.Append(n.tk.uiControl, stretchy) + ptk.uiBox.Append(tk.uiControl, stretchy) return true case widget.Tab: - if (p.tk.uiTab == nil) { - log.Log(ERROR, "p.tk.uiTab == nil for n.WidgetId =", n.WidgetId, "p.tk =", p.tk) - panic("p.tk.uiTab == nil") + if (ptk.uiTab == nil) { + log.Log(ERROR, "ptk.uiTab == nil for n.WidgetId =", n.WidgetId, "ptk =", ptk) + panic("ptk.uiTab == nil") } - if (n.tk.uiControl == nil) { - log.Log(ERROR, "n.tk.uiControl == nil for n.WidgetId =", n.WidgetId, "n.tk =", n.tk) - panic("n.tk.uiControl == nil") + if (tk.uiControl == nil) { + log.Log(ERROR, "tk.uiControl == nil for n.WidgetId =", n.WidgetId, "tk =", tk) + panic("tk.uiControl == nil") } log.Log(ERROR, "CHECK LOGIC ON THIS. APPENDING directly into a window without a tab") - // log.Log(ERROR, "THIS SHOULD NEVER HAPPEN ??????? trying to place() node=", n.WidgetId, n.progname, n.Text, n.WidgetType) - // log.Log(ERROR, "THIS SHOULD NEVER HAPPEN ??????? trying to place() on parent=", p.WidgetId, p.progname, p.Text, p.WidgetType) - // panic("n.tk.uiControl == nil") - p.tk.uiTab.Append(widget.GetString(n.value), n.tk.uiControl) - p.tk.boxC += 1 + // log.Log(ERROR, "THIS SHOULD NEVER HAPPEN ??????? trying to place() node=", n.WidgetId, n.GetProgName(), n.Text, n.WidgetType) + // log.Log(ERROR, "THIS SHOULD NEVER HAPPEN ??????? trying to place() on parent=", p.WidgetId, p.GetProgName(), p.Text, p.WidgetType) + // panic("tk.uiControl == nil") + ptk.uiTab.Append(widget.GetString(n.State.Value), tk.uiControl) + ptk.boxC += 1 return true case widget.Box: - log.Log(INFO, "place() uiBox =", p.tk.uiBox) - log.Log(INFO, "place() uiControl =", n.tk.uiControl) - p.tk.uiBox.Append(n.tk.uiControl, stretchy) - p.tk.boxC += 1 + log.Warn("SPEEDY Add Something to Box", n.WidgetId, n.GetProgName()) + log.Log(INFO, "place() uiBox =", ptk.uiBox) + log.Log(INFO, "place() uiControl =", tk.uiControl) + ptk.uiBox.Append(tk.uiControl, stretchy) + ptk.boxC += 1 return true case widget.Window: - p.tk.uiWindow.SetChild(n.tk.uiControl) + log.Warn("SPEEDY Add Something to Window", n.WidgetId, n.GetProgName()) + ptk.uiWindow.SetChild(tk.uiControl) return true default: log.Log(ERROR, "place() how? Parent =", p.WidgetId, p.WidgetType) } + log.Warn("SPEEDY newplace() return", n.WidgetId, n.GetProgName()) return false } |
