summaryrefslogtreecommitdiff
path: root/window-debug.go
blob: e5aca6671e5583f6635b2b3bdea6c4c94ed22ad6 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package gui

import (
	"log"
)

var names = make([]string, 100)
var nodeNames = make([]string, 100)

var bugWin *Node
/*
	Creates a window helpful for debugging this package
*/
func DebugWindow() {
	Config.Title = "git.wit.org/wit/gui debug fixme"
	Config.Width = 300
	Config.Height = 200
	Config.Exit = StandardClose
	bugWin = NewWindow()
	bugWin.DebugTab("WIT GUI Debug Tab")
}

// this function is used by the examples to add a tab
// dynamically to the bugWin node
// TODO: make this smarter once this uses toolkit/
func DebugTab() {
	if (bugWin == nil) {
		log.Println("Not sure what window to add this to? Use node.DebugTab() instead")
		return;
	}
	bugWin.DebugTab("does this work?")
}

func (n *Node) DebugTab(title string) *Node {
	var newN, gog, g1, g2, g3, dd *Node

	// time.Sleep(1 * time.Second)
	newN = n.NewTab(title)
	newN.Dump()

	gog = newN.NewGroup("GOLANG")
	gog.NewLabel("go language")
	gog.AddButton("GO Language Debug", func (*Node) {
		GolangDebugWindow()
	})

	gog.NewLabel("wit/gui package")
	gog.AddButton("WIT/GUI Package Debug", func (*Node) {
		Config.Width = 640
		Config.Height = 480
		Queue(DebugWindow)
	})
	gog.AddButton("Demo wit/gui", func (*Node) {
		DemoWindow()
	})
	gog.AddButton("Demo toolkit andlabs/ui", func (*Node) {
		DemoToolkitWindow()
	})

	g1 = newN.NewGroup("Current Windows")
	dd = g1.NewDropdown("Window Dropdown")
	log.Println("dd =", dd)

	var dump = false
	for _, child := range Config.master.children {
		log.Println("\t\t", child.id, child.Width, child.Height, child.Name)
		if (child.parent != nil) {
			log.Println("\t\t\tparent =",child.parent.id)
		} else {
			log.Println("\t\t\tno parent")
			panic("no parent")
		}
		if (dump == true) {
			child.Dump()
		}
		dd.AddDropdown(child.Name)
	}
	dd.SetDropdown(0)

	g2 = newN.NewGroup("Debug Window")
	g2.AddButton("SetMargined(tab)", func (*Node) {
		log.Println("\tSTART")
		name := dd.GetText()
		log.Println("\tENDed with", name)
		// gw.UiTab.SetMargined(*gw.TabNumber, true)
	})
	g2.AddButton("Hide(tab)", func (*Node) {
		// gw.UiTab.Hide()
	})
	g2.AddButton("Show(tab)", func (*Node) {
		// gw.UiTab.Show()
	})
	g2.AddButton("Delete(tab)", func (*Node) {
		// gw.UiTab.Delete(*gw.TabNumber)
	})
	g2.AddButton("change Title", func (*Node) {
		// mainWindow.SetText("hello world")
	})

	/////////////////////////////////////////////////////
	g3 = newN.NewGroup("Node Debug")

	g3.AddButton("Node.Dump()", func (n *Node) {
		n.Dump()
	})
	g3.AddButton("Node.ListChildren(false)", func (n *Node) {
		n.ListChildren(false)
	})
	g3.AddButton("Node.ListChildren(true)", func (n *Node) {
		n.ListChildren(true)
	})
	g3.AddButton("AddDebugTab()", func (n *Node) {
		if (bugWin != nil) {
			bugWin.DebugTab("added this DebugTab")
		}
	})

	return newN
}