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

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

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

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

	Name      string
	Subsystem string
	Desc      string
	Default   bool
	b         bool

	Custom func()
}

func (f *LogFlag) Get() bool {
	return f.lf.Get()
}

func (f *LogFlag) Set(b bool) {
	log.Info("LogFlag.Set() =", b)
	f.lf.Set(b)
	f.c.SetChecked(b)
}

func (f *LogFlag) SetDefault() {
	log.Info("LogFlag.SetDefault() =", f.Default)
	f.lf.SetDefault()
	f.c.SetChecked(f.lf.Get())
}

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

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

	return &f
}