diff options
| author | Jeff Carr <[email protected]> | 2023-04-06 18:26:30 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-04-06 18:26:30 -0500 |
| commit | 9ce7f345f1a704516b298b495f8eefd3eaa37708 (patch) | |
| tree | b62bbdd662a628b57bc2f4b7c200f41c020f8334 /main.go | |
| parent | bf60121b6515681ac505e80cb6824ba6bd978c29 (diff) | |
gocui: debug flag buttons work
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 37 |
1 files changed, 32 insertions, 5 deletions
@@ -104,10 +104,6 @@ func Start() *Node { return Config.rootNode } -func doSomething() { - log(logNow, "doSomething()") -} - func watchCallback() { log(logNow, "makeCallback() START") for { @@ -115,8 +111,39 @@ func watchCallback() { select { case a := <-Config.guiChan: log(logNow, "makeCallback() SELECT widget id =", a.WidgetId, a.Name) - sleep(.5) // TODO: remove this. added while under development + n := Config.rootNode.FindId(a.WidgetId) + if (n == nil) { + log(logError, "makeCallback() SELECT widget id =", a.WidgetId, a.Name) + } else { + go n.doUserEvent(a) + } + // this maybe a good idea? + // TODO: Throttle user events somehow + sleep(.1) + } + } +} + +func (n *Node) doUserEvent(a toolkit.Action) { + log(logNow, "doUserEvent() node =", n.id, n.Name) + switch n.WidgetType { + case toolkit.Checkbox: + n.B = a.B + log(logNow, "doUserEvent() Check =", n.id, n.Name, n.B) + if (n.Custom == nil) { + log(debugError, "Custom() = nil. SKIPPING") + return + } + n.Custom() + case toolkit.Button: + log(logNow, "doUserEvent() button =", n.id, n.Name) + if (n.Custom == nil) { + log(debugError, "Custom() = nil. SKIPPING") + return } + n.Custom() + default: + log(logNow, "doUserEvent() type =", n.WidgetType) } } |
