summaryrefslogtreecommitdiff
path: root/logFlag.go
blob: dc95e59f1c391ceeb8c1e321baecac7c3e1e3677 (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
/*
	A log.Flag

	-----------------------------------------------
	|            |                                 |
	|   [ X ]    |    INFO (controls log.Info()    |
	|            |                                 |
	-----------------------------------------------
*/
package gadgets

import 	(
	"go.wit.com/log"
	"go.wit.com/gui/gui"
)

type LogFlag struct {
	p	*gui.Node	// parent widget
	c	*gui.Node	// checkbox widget

	Name string
	Subsystem string
	Desc string
	b bool

	Custom func()
}

func (f *LogFlag) Get() bool {
	return log.Get(f.Subsystem, f.Name)
}

func (f *LogFlag) Set(b bool) {
	log.Println("LogFlag.Set() =", b)
	log.Set(f.Subsystem, f.Name, b)
}

func NewLogFlag(n *gui.Node, lf *log.LogFlag) *LogFlag {
	f := LogFlag {
		Name: lf.Name,
		Subsystem: lf.Subsystem,
		Desc: lf.Desc,
		p: n,
	}

	// various timeout settings
	f.c = n.NewCheckbox(f.Name + ": " + f.Desc)
	f.c.Custom = func() {
		log.Set(f.Subsystem, f.Name, f.c.B)
		log.Println("LogFlag.Custom() user changed value to =", log.Get(f.Subsystem, f.Name))
	}

	return &f
}