101 lines
2.0 KiB
Go
101 lines
2.0 KiB
Go
package debugger
|
|
|
|
import (
|
|
"go.wit.com/log"
|
|
"go.wit.com/gui/gui"
|
|
)
|
|
|
|
type LogSettings struct {
|
|
ready bool
|
|
hidden bool
|
|
err error
|
|
name string
|
|
|
|
parent *gui.Node // should be the root of the 'gui' package binary tree
|
|
window *gui.Node // our window for displaying the log package settings
|
|
group *gui.Node //
|
|
grid *gui.Node //
|
|
checkbox *gui.Node
|
|
label *gui.Node
|
|
|
|
}
|
|
|
|
func (ls *LogSettings) Set(b bool) {
|
|
// log.Set(ls.name, b)
|
|
log.Warn("log.Set() FIXME: not working here anymore")
|
|
ls.checkbox.Set(b)
|
|
}
|
|
|
|
func NewLogFlag(p *gui.Node, name string) *LogSettings {
|
|
ls := new(LogSettings)
|
|
ls.parent = p
|
|
ls.ready = false
|
|
ls.name = name
|
|
|
|
ls.checkbox = p.NewCheckbox(name)
|
|
ls.label = p.NewLabel("Enable log." + name)
|
|
// ls.checkbox.Set(log.Get(name))
|
|
ls.checkbox.Custom = func() {
|
|
// log.Set(name, ls.checkbox.B)
|
|
log.Warn("log.Set() FIXME: not working here anymore")
|
|
}
|
|
return ls
|
|
}
|
|
|
|
// Let's you toggle on and off the various types of debugging output
|
|
// These checkboxes should be in the same order as the are printed
|
|
func DebugFlags(n *gui.Node) {
|
|
var newW, newB, g *gui.Node
|
|
|
|
logGadgets := make(map[string]*LogSettings)
|
|
|
|
newW = myGui.NewWindow("Debug Flags")
|
|
newW.Custom = myGui.StandardClose
|
|
|
|
newB = newW.NewBox("hBox", true)
|
|
g = newB.NewGroup("Show").Pad()
|
|
|
|
g.NewButton("log.SetTmp()", func () {
|
|
log.SetTmp()
|
|
})
|
|
|
|
g.NewButton("log.All(true)", func () {
|
|
for _, lf := range logGadgets {
|
|
lf.Set(true)
|
|
}
|
|
log.All(true)
|
|
})
|
|
|
|
g.NewButton("log.All(false)", func () {
|
|
for _, lf := range logGadgets {
|
|
lf.Set(false)
|
|
}
|
|
log.All(false)
|
|
})
|
|
|
|
g.NewButton("Dump Flags", func () {
|
|
// ShowDebugValues()
|
|
log.ListFlags()
|
|
})
|
|
|
|
/*
|
|
g.NewButton("All On", func () {
|
|
SetDebug(true)
|
|
})
|
|
|
|
g.NewButton("All Off", func () {
|
|
SetDebug(false)
|
|
})
|
|
*/
|
|
|
|
g = newB.NewGroup("List")
|
|
g = g.NewGrid("flags grid", 2, 2)
|
|
|
|
/*
|
|
logGadgets["INFO"] = NewLogFlag(g, "INFO")
|
|
logGadgets["WARN"] = NewLogFlag(g, "WARN")
|
|
logGadgets["SPEW"] = NewLogFlag(g, "SPEW")
|
|
logGadgets["ERROR"] = NewLogFlag(g, "ERROR")
|
|
*/
|
|
}
|