diff options
| author | Jeff Carr <[email protected]> | 2023-04-06 18:00:18 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-04-06 18:00:18 -0500 |
| commit | bf60121b6515681ac505e80cb6824ba6bd978c29 (patch) | |
| tree | cdb87a9169185da1c33827702ef1b405c3d1ed00 /main.go | |
| parent | 70f8797122741ef61951d3400317173a1d9974da (diff) | |
gocui: callbacks work via a channel
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -104,6 +104,22 @@ func Start() *Node { return Config.rootNode } +func doSomething() { + log(logNow, "doSomething()") +} + +func watchCallback() { + log(logNow, "makeCallback() START") + for { + log(logNow, "makeCallback() for loop") + select { + case a := <-Config.guiChan: + log(logNow, "makeCallback() SELECT widget id =", a.WidgetId, a.Name) + sleep(.5) // TODO: remove this. added while under development + } + } +} + func (n *Node) LoadPlugin(name string) bool { StartS(name) Redraw(name) @@ -129,6 +145,11 @@ func Main(f func()) { InitPlugins([]string{"andlabs", "gocui"}) + if (Config.guiChan == nil) { + Config.guiChan = make(chan toolkit.Action) + go watchCallback() + } + for _, aplug := range allPlugins { log(debugGui, "gui.Node.NewButton() toolkit plugin =", aplug.name) if (aplug.MainOk) { @@ -140,8 +161,12 @@ func Main(f func()) { continue } aplug.MainOk = true + if (aplug.Callback != nil) { + aplug.Callback(Config.guiChan) + } aplug.Main(f) } + } /* |
