s/Config/me/ to remove direct access to anything
since most everything needs to be passed to the toolkits everything should be accessed via func()'s Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
a132b48ada
commit
14f69c4a40
|
@ -107,12 +107,6 @@ external things which might be useful
|
||||||
* [GO Style Guide]
|
* [GO Style Guide]
|
||||||
```
|
```
|
||||||
|
|
||||||
## Variables
|
|
||||||
|
|
||||||
```golang
|
|
||||||
var Config guiConfig
|
|
||||||
```
|
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### func [DebugWidgetWindow](/debugWidget.go#L52)
|
### func [DebugWidgetWindow](/debugWidget.go#L52)
|
||||||
|
@ -152,12 +146,13 @@ Creates a window helpful for debugging this package
|
||||||
The window is destroyed and the application exits
|
The window is destroyed and the application exits
|
||||||
TODO: properly exit the plugin since Quit() doesn't do it
|
TODO: properly exit the plugin since Quit() doesn't do it
|
||||||
|
|
||||||
### func [Watchdog](/watchdog.go#L15)
|
### func [Watchdog](/watchdog.go#L16)
|
||||||
|
|
||||||
`func Watchdog()`
|
`func Watchdog()`
|
||||||
|
|
||||||
This program sits here.
|
This program sits here.
|
||||||
If you exit here, the whole thing will os.Exit()
|
If you exit here, the whole thing will os.Exit()
|
||||||
|
TODO: use Ticker
|
||||||
|
|
||||||
This goroutine can be used like a watchdog timer
|
This goroutine can be used like a watchdog timer
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ func (n *Node) NewButton(name string, custom func()) *Node {
|
||||||
// deprecate this once andlabs is refactored
|
// deprecate this once andlabs is refactored
|
||||||
func callback(i int) bool {
|
func callback(i int) bool {
|
||||||
log(debugError, "callback() for widget id =", i)
|
log(debugError, "callback() for widget id =", i)
|
||||||
n := Config.rootNode.FindId(i)
|
n := me.rootNode.FindId(i)
|
||||||
log(debugError, "callback() found node =", n)
|
log(debugError, "callback() found node =", n)
|
||||||
// running custom here means the button get's clicked twice
|
// running custom here means the button get's clicked twice
|
||||||
if (n.Custom == nil) {
|
if (n.Custom == nil) {
|
||||||
|
|
|
@ -9,7 +9,7 @@ func (n *Node) DebugFlags(makeWindow bool) {
|
||||||
// make a new window
|
// make a new window
|
||||||
// make a new tab in the existing window
|
// make a new tab in the existing window
|
||||||
if (makeWindow) {
|
if (makeWindow) {
|
||||||
w = Config.rootNode.NewWindow("Debug Flags")
|
w = me.rootNode.NewWindow("Debug Flags")
|
||||||
w.Custom = w.StandardClose
|
w.Custom = w.StandardClose
|
||||||
} else {
|
} else {
|
||||||
w = n.NewTab("Flags")
|
w = n.NewTab("Flags")
|
||||||
|
|
|
@ -18,7 +18,7 @@ func (n *Node) DebugGoChannels(makeWindow bool) {
|
||||||
// make a new window
|
// make a new window
|
||||||
// make a new tab in the existing window
|
// make a new tab in the existing window
|
||||||
if (makeWindow) {
|
if (makeWindow) {
|
||||||
w = Config.rootNode.NewWindow("Debug GO Channels")
|
w = me.rootNode.NewWindow("Debug GO Channels")
|
||||||
w.Custom = w.StandardClose
|
w.Custom = w.StandardClose
|
||||||
} else {
|
} else {
|
||||||
w = n.NewTab("Chan")
|
w = n.NewTab("Chan")
|
||||||
|
|
|
@ -16,7 +16,7 @@ func (n *Node) DebugGolangWindow(makeWindow bool) {
|
||||||
// make a new window
|
// make a new window
|
||||||
// make a new tab in the existing window
|
// make a new tab in the existing window
|
||||||
if (makeWindow) {
|
if (makeWindow) {
|
||||||
w = Config.rootNode.NewWindow("GO")
|
w = me.rootNode.NewWindow("GO")
|
||||||
w.Custom = w.StandardClose
|
w.Custom = w.StandardClose
|
||||||
} else {
|
} else {
|
||||||
w = n.NewTab("GOLANG")
|
w = n.NewTab("GOLANG")
|
||||||
|
|
|
@ -60,7 +60,7 @@ func DebugWidgetWindow(w *Node) {
|
||||||
// make a new window
|
// make a new window
|
||||||
// make a new tab in the existing window
|
// make a new tab in the existing window
|
||||||
if (makeTabs) {
|
if (makeTabs) {
|
||||||
bugWidget = Config.rootNode.NewWindow("Widgets")
|
bugWidget = me.rootNode.NewWindow("Widgets")
|
||||||
bugWidget.Custom = bugWidget.StandardClose
|
bugWidget.Custom = bugWidget.StandardClose
|
||||||
} else {
|
} else {
|
||||||
bugWidget = bugWin.NewTab("Widgets")
|
bugWidget = bugWin.NewTab("Widgets")
|
||||||
|
@ -162,7 +162,7 @@ func DebugWidgetWindow(w *Node) {
|
||||||
activeJunk.NewLabel("test junk")
|
activeJunk.NewLabel("test junk")
|
||||||
|
|
||||||
if (activeWidget == nil) {
|
if (activeWidget == nil) {
|
||||||
setActiveWidget(Config.rootNode)
|
setActiveWidget(me.rootNode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ var myButton *Node
|
||||||
Creates a window helpful for debugging this package
|
Creates a window helpful for debugging this package
|
||||||
*/
|
*/
|
||||||
func DebugWindow() {
|
func DebugWindow() {
|
||||||
bugWin = Config.rootNode.NewWindow("go.wit.com/gui debug window").DebugTab("Debug Tab")
|
bugWin = me.rootNode.NewWindow("go.wit.com/gui debug window").DebugTab("Debug Tab")
|
||||||
bugWin.Custom = bugWin.StandardClose
|
bugWin.Custom = bugWin.StandardClose
|
||||||
// bugWin.DebugTab("Debug Tab")
|
// bugWin.DebugTab("Debug Tab")
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ func (n *Node) DebugTab(title string) *Node {
|
||||||
|
|
||||||
g1.NewButton("List toolkits", func () {
|
g1.NewButton("List toolkits", func () {
|
||||||
dropdownWindow(g1)
|
dropdownWindow(g1)
|
||||||
Config.rootNode.ListToolkits()
|
me.rootNode.ListToolkits()
|
||||||
})
|
})
|
||||||
g1.NewButton("List Windows", func () {
|
g1.NewButton("List Windows", func () {
|
||||||
dropdownWindow(g1)
|
dropdownWindow(g1)
|
||||||
|
@ -79,7 +79,7 @@ func (n *Node) DebugTab(title string) *Node {
|
||||||
|
|
||||||
g2.NewButton("Node.ListChildren(true)", func () {
|
g2.NewButton("Node.ListChildren(true)", func () {
|
||||||
if (activeWidget == nil) {
|
if (activeWidget == nil) {
|
||||||
activeWidget = Config.rootNode
|
activeWidget = me.rootNode
|
||||||
}
|
}
|
||||||
activeWidget.ListChildren(true)
|
activeWidget.ListChildren(true)
|
||||||
})
|
})
|
||||||
|
@ -95,7 +95,7 @@ func (n *Node) DebugTab(title string) *Node {
|
||||||
})
|
})
|
||||||
|
|
||||||
g2.NewButton("load toolkit 'gocui'", func () {
|
g2.NewButton("load toolkit 'gocui'", func () {
|
||||||
Config.rootNode.LoadToolkit("gocui")
|
me.rootNode.LoadToolkit("gocui")
|
||||||
})
|
})
|
||||||
|
|
||||||
return newN
|
return newN
|
||||||
|
@ -120,7 +120,7 @@ func dropdownWindow(p *Node) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// var last = ""
|
// var last = ""
|
||||||
for _, child := range Config.rootNode.children {
|
for _, child := range me.rootNode.children {
|
||||||
log(logInfo, "\t\t", child.id, child.Name)
|
log(logInfo, "\t\t", child.id, child.Name)
|
||||||
dd.AddDropdownName(child.Name)
|
dd.AddDropdownName(child.Name)
|
||||||
// last = child.Name
|
// last = child.Name
|
||||||
|
@ -160,5 +160,5 @@ func dropdownWindowWidgets(p *Node) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// list everything in the binary tree
|
// list everything in the binary tree
|
||||||
addDropdowns(Config.rootNode)
|
addDropdowns(me.rootNode)
|
||||||
}
|
}
|
||||||
|
|
30
main.go
30
main.go
|
@ -17,21 +17,21 @@ const Yaxis = 1 // stack things vertically
|
||||||
func init() {
|
func init() {
|
||||||
log("init() has been run")
|
log("init() has been run")
|
||||||
|
|
||||||
Config.counter = 0
|
me.counter = 0
|
||||||
Config.prefix = "wit"
|
me.prefix = "wit"
|
||||||
|
|
||||||
// Populates the top of the binary tree
|
// Populates the top of the binary tree
|
||||||
Config.rootNode = addNode("guiBinaryTree")
|
me.rootNode = addNode("guiBinaryTree")
|
||||||
Config.rootNode.WidgetType = toolkit.Root
|
me.rootNode.WidgetType = toolkit.Root
|
||||||
|
|
||||||
// used to pass debugging flags to the toolkit plugins
|
// used to pass debugging flags to the toolkit plugins
|
||||||
Config.flag = Config.rootNode.newNode("flag", 0, nil)
|
me.flag = me.rootNode.newNode("flag", 0, nil)
|
||||||
Config.flag.WidgetType = toolkit.Flag
|
me.flag.WidgetType = toolkit.Flag
|
||||||
|
|
||||||
Config.flag = Config.rootNode.newNode("stdout", 0, nil)
|
me.flag = me.rootNode.newNode("stdout", 0, nil)
|
||||||
Config.flag.WidgetType = toolkit.Stdout
|
me.flag.WidgetType = toolkit.Stdout
|
||||||
|
|
||||||
Config.guiChan = make(chan toolkit.Action, 1)
|
me.guiChan = make(chan toolkit.Action, 1)
|
||||||
go watchCallback()
|
go watchCallback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,10 +40,10 @@ func watchCallback() {
|
||||||
for {
|
for {
|
||||||
log(logNow, "watchCallback() restarted select for toolkit user events")
|
log(logNow, "watchCallback() restarted select for toolkit user events")
|
||||||
select {
|
select {
|
||||||
case a := <-Config.guiChan:
|
case a := <-me.guiChan:
|
||||||
if (a.ActionType == toolkit.UserQuit) {
|
if (a.ActionType == toolkit.UserQuit) {
|
||||||
log(logNow, "doUserEvent() User sent Quit()")
|
log(logNow, "doUserEvent() User sent Quit()")
|
||||||
Config.rootNode.doCustom()
|
me.rootNode.doCustom()
|
||||||
exit("wit/gui toolkit.UserQuit")
|
exit("wit/gui toolkit.UserQuit")
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ func watchCallback() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
n := Config.rootNode.FindId(a.WidgetId)
|
n := me.rootNode.FindId(a.WidgetId)
|
||||||
if (n == nil) {
|
if (n == nil) {
|
||||||
log(logError, "watchCallback() UNKNOWN widget id =", a.WidgetId, a.Name)
|
log(logError, "watchCallback() UNKNOWN widget id =", a.WidgetId, a.Name)
|
||||||
} else {
|
} else {
|
||||||
|
@ -115,7 +115,7 @@ func (n *Node) doUserEvent(a toolkit.Action) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *Node) InitEmbed(resFS embed.FS) *Node {
|
func (n *Node) InitEmbed(resFS embed.FS) *Node {
|
||||||
Config.resFS = resFS
|
me.resFS = resFS
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ func (n *Node) LoadToolkit(name string) *Node {
|
||||||
sleep(.5) // temp hack until chan communication is setup
|
sleep(.5) // temp hack until chan communication is setup
|
||||||
|
|
||||||
// TODO: find a new way to do this that is locking, safe and accurate
|
// TODO: find a new way to do this that is locking, safe and accurate
|
||||||
Config.rootNode.redraw(plug)
|
me.rootNode.redraw(plug)
|
||||||
log(logInfo, "LoadToolkit() END for name =", name)
|
log(logInfo, "LoadToolkit() END for name =", name)
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ func (n *Node) CloseToolkit(name string) bool {
|
||||||
// some toolkit's on some operating systems don't support more than one
|
// some toolkit's on some operating systems don't support more than one
|
||||||
// Keep things simple. Do the default expected thing whenever possible
|
// Keep things simple. Do the default expected thing whenever possible
|
||||||
func New() *Node {
|
func New() *Node {
|
||||||
return Config.rootNode
|
return me.rootNode
|
||||||
}
|
}
|
||||||
|
|
||||||
// try to load andlabs, if that doesn't work, fall back to the console
|
// try to load andlabs, if that doesn't work, fall back to the console
|
||||||
|
|
4
node.go
4
node.go
|
@ -24,10 +24,10 @@ func addNode(title string) *Node {
|
||||||
n := new(Node)
|
n := new(Node)
|
||||||
n.Name = title
|
n.Name = title
|
||||||
n.Text = title
|
n.Text = title
|
||||||
n.id = Config.counter
|
n.id = me.counter
|
||||||
log(debugNode, "addNode = widget setid =", n.id)
|
log(debugNode, "addNode = widget setid =", n.id)
|
||||||
|
|
||||||
Config.counter += 1
|
me.counter += 1
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ func searchPaths(name string) *aplug {
|
||||||
|
|
||||||
// first try to load the embedded plugin file
|
// first try to load the embedded plugin file
|
||||||
filename = "plugins/" + name + ".so"
|
filename = "plugins/" + name + ".so"
|
||||||
pfile, err = Config.resFS.ReadFile(filename)
|
pfile, err = me.resFS.ReadFile(filename)
|
||||||
if (err == nil) {
|
if (err == nil) {
|
||||||
log(logError, "write out file here", name, filename, len(pfile))
|
log(logError, "write out file here", name, filename, len(pfile))
|
||||||
exit()
|
exit()
|
||||||
|
@ -195,7 +195,7 @@ func initToolkit(name string, filename string) *aplug {
|
||||||
log(debugError, "initToolkit() ERROR PluginChannel() returned nil for plugin:", newPlug.name, filename)
|
log(debugError, "initToolkit() ERROR PluginChannel() returned nil for plugin:", newPlug.name, filename)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
newPlug.Callback(Config.guiChan)
|
newPlug.Callback(me.guiChan)
|
||||||
newPlug.InitOk = true
|
newPlug.InitOk = true
|
||||||
|
|
||||||
log(debugPlugin, "initToolkit() END", newPlug.name, filename)
|
log(debugPlugin, "initToolkit() END", newPlug.name, filename)
|
||||||
|
|
|
@ -21,7 +21,7 @@ import (
|
||||||
// For example, a "Mouse Control Panel" not the GIMP or blender.
|
// For example, a "Mouse Control Panel" not the GIMP or blender.
|
||||||
//
|
//
|
||||||
|
|
||||||
var Config guiConfig
|
var me guiConfig
|
||||||
|
|
||||||
// This struct can be used with the go-arg package
|
// This struct can be used with the go-arg package
|
||||||
type GuiArgs struct {
|
type GuiArgs struct {
|
||||||
|
|
|
@ -9,18 +9,19 @@ var watchtime time.Duration = 100 // in tenths of seconds
|
||||||
/*
|
/*
|
||||||
This program sits here.
|
This program sits here.
|
||||||
If you exit here, the whole thing will os.Exit()
|
If you exit here, the whole thing will os.Exit()
|
||||||
|
TODO: use Ticker
|
||||||
|
|
||||||
This goroutine can be used like a watchdog timer
|
This goroutine can be used like a watchdog timer
|
||||||
*/
|
*/
|
||||||
func Watchdog() {
|
func Watchdog() {
|
||||||
var i = 1
|
var i = 1
|
||||||
for {
|
for {
|
||||||
log(logInfo, "watchdog timer is alive. give me something to do.", i)
|
log(logInfo, "gui.Watchdog() is alive. give me something to do.", i)
|
||||||
if (Config.rootNode == nil) {
|
if (me.rootNode == nil) {
|
||||||
log(logInfo, "Config.rootNode == nil", i)
|
log(logInfo, "me.rootNode == nil", i)
|
||||||
} else {
|
} else {
|
||||||
if (logVerbose) {
|
if (logVerbose) {
|
||||||
Config.rootNode.ListChildren(true)
|
me.rootNode.ListChildren(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
i += 1
|
i += 1
|
||||||
|
|
Loading…
Reference in New Issue