From 821e6d823a6cec5a439500b5412ce0513e10295f Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 8 Apr 2023 12:08:57 -0500 Subject: [PATCH] andlabs is still broken Signed-off-by: Jeff Carr --- README-goreadme.md | 8 ++------ cmds/buttonplugin/main.go | 3 --- debugWindow.go | 4 ---- main.go | 7 ++++--- plugin.go | 5 ++++- redraw.go | 38 +++++--------------------------------- 6 files changed, 15 insertions(+), 50 deletions(-) diff --git a/README-goreadme.md b/README-goreadme.md index a21069d..2aa1f48 100644 --- a/README-goreadme.md +++ b/README-goreadme.md @@ -144,16 +144,12 @@ and allow the 'go-arg' command line args to override the defaults loads and initializes a toolkit (andlabs/ui, gocui, etc) -### func [Main](/main.go#L197) +### func [Main](/main.go#L198) `func Main(f func())` This should not pass a function -### func [Redraw](/redraw.go#L9) - -`func Redraw(s string)` - ### func [SetDebug](/debug.go#L28) `func SetDebug(s bool)` @@ -166,7 +162,7 @@ This should not pass a function `func ShowDebugValues()` -### func [StandardExit](/main.go#L250) +### func [StandardExit](/main.go#L251) `func StandardExit()` diff --git a/cmds/buttonplugin/main.go b/cmds/buttonplugin/main.go index acbc812..f33065a 100644 --- a/cmds/buttonplugin/main.go +++ b/cmds/buttonplugin/main.go @@ -34,8 +34,6 @@ func main() { buttonWindow() log.Println("Main() END") time.Sleep(1 * time.Second) - // gui.StartS("gocui") - // gui.Redraw("gocui") gui.Watchdog() gui.StandardExit() } @@ -72,7 +70,6 @@ func buttonWindow() { // this set the xterm and mate-terminal window title. maybe works generally? fmt.Println("\033]0;" + title + "blah \007") gui.LoadPlugin("gocui") - gui.Redraw("gocui") }) g.NewButton("Load 'andlabs'", func () { diff --git a/debugWindow.go b/debugWindow.go index d0135b5..967f8c2 100644 --- a/debugWindow.go +++ b/debugWindow.go @@ -97,10 +97,6 @@ func (n *Node) DebugTab(title string) *Node { startS("gocui") }) - g2.NewButton("Redraw(gocui)", func () { - Redraw("gocui") - }) - return newN } diff --git a/main.go b/main.go index 207d971..8e469e1 100644 --- a/main.go +++ b/main.go @@ -184,12 +184,13 @@ func startS(name string) *Node { if (aplug == nil) { return Config.rootNode } + /* // will this really work on mswindows & macos? f := func() { } go Main(f) + */ sleep(1) // temp hack until chan communication is setup - Config.rootNode.Redraw(aplug) return Config.rootNode } @@ -203,8 +204,8 @@ func Main(f func()) { if (os.Getenv("DISPLAY") == "") { InitPlugins([]string{"gocui"}) } else { - InitPlugins([]string{"andlabs", "gocui"}) - // InitPlugins([]string{"gocui", "andlabs"}) + // InitPlugins([]string{"andlabs", "gocui"}) + InitPlugins([]string{"gocui", "andlabs"}) } for _, aplug := range allPlugins { diff --git a/plugin.go b/plugin.go index 4494f45..939107a 100644 --- a/plugin.go +++ b/plugin.go @@ -118,7 +118,10 @@ func LoadToolkit(name string) *aplug { log(debugPlugin, "gui.LoadToolkit() END", newPlug.name, filename) newPlug.Init() - Config.rootNode.Redraw(newPlug) + newPlug.pluginChan = newPlug.PluginChannel() + + // TODO: find a new way to do this that is locking, safe and accurate + Config.rootNode.redraw(newPlug) newPlug.LoadOk = true return newPlug } diff --git a/redraw.go b/redraw.go index 0e3c03a..4461c35 100644 --- a/redraw.go +++ b/redraw.go @@ -6,32 +6,15 @@ import ( // This recreates the whole GUI for a plugin -func Redraw(s string) { - var p *aplug - log(logNow, "attempt to feed the binary tree to", s) - for _, aplug := range allPlugins { - log("Loaded plugin:", aplug.name, aplug.filename) - if (aplug.name == s) { - log("Found plugin:", aplug.name, aplug.filename) - p = aplug - } - } - if (p == nil) { - log("Plugin", s, "is not loaded") - return - } - Config.rootNode.Redraw(p) -} - // func (n *Node) ListChildren(dump bool, dropdown *Node, mapNodes map[string]*Node) { -func (n *Node) Redraw(p *aplug) { +func (n *Node) redraw(p *aplug) { if (n == nil) { return } n.redo(p) for _, child := range n.children { - child.Redraw(p) + child.redraw(p) } return } @@ -48,8 +31,7 @@ func (n *Node) redo(plug *aplug) { a.WidgetType = n.WidgetType a.WidgetId = n.id - - // used for Windows + // used for new Windows a.Width = n.Width a.Height = n.Height @@ -57,7 +39,7 @@ func (n *Node) redo(plug *aplug) { a.X = n.X a.Y = n.Y - // used for grids and tables + // implement here for grids and tables ? // a.NextX = n.NextX // a.NextY = n.NextY @@ -72,16 +54,6 @@ func (n *Node) redo(plug *aplug) { a.ParentId = n.parent.id } - plug.pluginChan = plug.PluginChannel() - - // plug.Action(a) - if (plug.pluginChan == nil) { - log(debugNow, "Action() ERRRRRRROR pluginChan == nil", plug.name) - } else { - log(debugNow, "Action() SEND pluginChan", plug.name) - log(debugNow, "Action() SEND pluginChan", plug.name) - log(debugNow, "Action() SEND pluginChan", plug.name) - plug.pluginChan <- *a - } + plug.pluginChan <- *a sleep(.5) }