89 lines
2.2 KiB
Go
89 lines
2.2 KiB
Go
package tree
|
|
|
|
/*
|
|
These code should be common to all gui plugins
|
|
|
|
There are some helper functions that are probably going to be
|
|
the same everywhere. Mostly due to handling the binary tree structure
|
|
and the channel communication
|
|
|
|
For now, it's just a symlink to the 'master' version in
|
|
./toolkit/nocui/common.go
|
|
*/
|
|
|
|
import (
|
|
"go.wit.com/log"
|
|
"go.wit.com/lib/widget"
|
|
)
|
|
|
|
func (me *TreeInfo) DoEnableDebugger() {
|
|
if (me.callback == nil) {
|
|
log.Warn("DoUserEvent() toolkit panic() callback == nil")
|
|
return
|
|
}
|
|
var a widget.Action
|
|
a.ActionType = widget.EnableDebug
|
|
a.ProgName = me.PluginName
|
|
me.callback <- a
|
|
return
|
|
}
|
|
|
|
func (me *TreeInfo) DoToolkitLoad(s string) {
|
|
if (me.callback == nil) {
|
|
log.Warn("DoUserEvent() toolkit load callback == nil")
|
|
return
|
|
}
|
|
var a widget.Action
|
|
a.ActionType = widget.ToolkitLoad
|
|
a.ProgName = me.PluginName
|
|
a.Value = s
|
|
log.Warn("DoUserEvent() START: toolkit load", s)
|
|
me.callback <- a
|
|
log.Warn("DoUserEvent() END: toolkit load", s)
|
|
return
|
|
}
|
|
|
|
func (me *TreeInfo) DoToolkitPanic() {
|
|
if (me.callback == nil) {
|
|
log.Warn("DoUserEvent() toolkit panic() callback == nil")
|
|
return
|
|
}
|
|
var a widget.Action
|
|
a.ActionType = widget.ToolkitPanic
|
|
a.ProgName = me.PluginName
|
|
log.Info("DoUserEvent() START: toolkit panic()")
|
|
me.callback <- a
|
|
log.Info("DoUserEvent() END: toolkit panic()")
|
|
return
|
|
}
|
|
|
|
func (me *TreeInfo) DoWindowCloseEvent(n *Node) {
|
|
if (me.callback == nil) {
|
|
log.Warn("DoUserEvent() callback == nil", n.WidgetId)
|
|
return
|
|
}
|
|
var a widget.Action
|
|
a.WidgetId = n.WidgetId
|
|
a.ActionType = widget.CloseWindow
|
|
log.Info("DoUserEvent() START: user closed the window", n.GetProgName())
|
|
me.callback <- a
|
|
log.Info("DoUserEvent() END: user closed the window", n.GetProgName())
|
|
return
|
|
}
|
|
|
|
// Other goroutines must use this to access the GUI
|
|
func (me *TreeInfo) DoUserEvent(n *Node) {
|
|
if (me.callback == nil) {
|
|
log.Warn("DoUserEvent() callback == nil", n.WidgetId)
|
|
return
|
|
}
|
|
var a widget.Action
|
|
a.WidgetId = n.WidgetId
|
|
a.Value = n.State.Value
|
|
a.ActionType = widget.User
|
|
log.Info("DoUserEvent() START: send a user event to the callback channel")
|
|
me.callback <- a
|
|
log.Info("DoUserEvent() END: sent a user event to the callback channel")
|
|
return
|
|
}
|