summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--logSettings.go96
-rw-r--r--mainWindow.go10
-rw-r--r--structs.go6
3 files changed, 103 insertions, 9 deletions
diff --git a/logSettings.go b/logSettings.go
new file mode 100644
index 0000000..898de90
--- /dev/null
+++ b/logSettings.go
@@ -0,0 +1,96 @@
+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)
+ 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)
+ }
+ 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")
+}
diff --git a/mainWindow.go b/mainWindow.go
index 6d535cd..ee3e354 100644
--- a/mainWindow.go
+++ b/mainWindow.go
@@ -7,13 +7,6 @@ import (
"go.wit.com/gui/gui"
)
-// main debugging window
-var myGui *gui.Node
-var bugWin *gui.Node
-var bugTab *gui.Node
-
-var mapWindows map[string]*gui.Node // tracks all windows that exist
-
/*
Creates a window helpful for debugging this package
*/
@@ -26,7 +19,6 @@ func DebugWindow(p *gui.Node) {
bugTab.StandardClose()
if gui.ArgDebug() {
log.SetTmp()
- // myGui.DebugFlags()
}
}
@@ -52,7 +44,7 @@ func DebugWindow2(n *gui.Node, title string) *gui.Node {
n.SetTabs(false)
gog.NewButton("logging", func () {
- bugWin.DebugFlags()
+ DebugFlags(myGui)
})
gog.NewButton("Debug Widgets", func () {
gui.DebugWidgetWindow(myGui)
diff --git a/structs.go b/structs.go
index c02a12c..0f6d853 100644
--- a/structs.go
+++ b/structs.go
@@ -5,6 +5,12 @@ import (
// "go.wit.com/gui/gui/toolkit"
)
+// main debugging window
+var myGui *gui.Node
+var bugWin *gui.Node
+var bugTab *gui.Node
+
+var mapWindows map[string]*gui.Node // tracks all windows that exist
// global var for checking to see if this
// window/tab for debugging a widget exists