summaryrefslogtreecommitdiff
path: root/logSettings.go
blob: fee9bf4ff792b635f3ca81f1699edfc9235963cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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")
	*/
}