summaryrefslogtreecommitdiff
path: root/toolkit/andlabs/structs.go
blob: ab75139b6f1e342226e2c29ef5f0adbafbc6418f (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
package toolkit

import "log"

import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"

import "github.com/davecgh/go-spew/spew"

var DebugToolkit bool = false

// stores the raw toolkit internals
type Toolkit struct {
	id     string

	Name   string
	Width  int
	Height int

	OnChanged func(*Toolkit)

	uiBox     *ui.Box
	uiButton  *ui.Button
	uiControl *ui.Control
	uiEntry   *ui.Entry
	uiGroup   *ui.Group
	uiLabel   *ui.Label
	uiSlider  *ui.Slider
	uiSpinbox *ui.Spinbox
	uiTab     *ui.Tab
	uiText    *ui.EditableCombobox
	uiWindow  *ui.Window
}

func (t *Toolkit) Dump() {
	log.Println("gui.Toolkit.Dump() uiBox   =", t.uiBox)
	log.Println("gui.Toolkit.Dump() uiGroup =", t.uiGroup)
}

func (t *Toolkit) GetText() string {
	if (DebugToolkit) {
		log.Println("gui.Toolkit.Text() Enter")
		scs := spew.ConfigState{MaxDepth: 1}
		scs.Dump(t)
	}
	if (t.uiEntry != nil) {
		if (DebugToolkit) {
			log.Println("gui.Toolkit.Value() =", t.uiEntry.Text)
		}
		return t.uiEntry.Text()
	}
	return ""
}

func (t *Toolkit) SetText(s string) bool {
	if (DebugToolkit) {
		log.Println("gui.Toolkit.Text() Enter")
		scs := spew.ConfigState{MaxDepth: 1}
		scs.Dump(t)
	}
	if (t.uiEntry != nil) {
		if (DebugToolkit) {
			log.Println("gui.Toolkit.Value() =", t.uiEntry.Text)
		}
		t.uiEntry.SetText(s)
		return true
	}
	return false
}

func (t *Toolkit) Value() int {
	if (DebugToolkit) {
		log.Println("gui.Toolkit.Value() Enter")
		scs := spew.ConfigState{MaxDepth: 1}
		scs.Dump(t)
	}
	if (t == nil) {
		log.Println("gui.Toolkit.Value() can not get value t == nil")
		return 0
	}
	if (t.uiSlider != nil) {
		if (DebugToolkit) {
			log.Println("gui.Toolkit.Value() =", t.uiSlider.Value)
		}
		return t.uiSlider.Value()
	}
	if (t.uiSpinbox != nil) {
		if (DebugToolkit) {
			log.Println("gui.Toolkit.Value() =", t.uiSpinbox.Value)
		}
		return t.uiSpinbox.Value()
	}
	log.Println("gui.Toolkit.Value() Could not find a ui element to get a value from")
	return 0
}