summaryrefslogtreecommitdiff
path: root/logFlag.go
blob: 1471a7e52b6868ff4f336d32bc0ab0918a74060d (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
}