summaryrefslogtreecommitdiff
path: root/debugWindow.go
diff options
context:
space:
mode:
Diffstat (limited to 'debugWindow.go')
-rw-r--r--debugWindow.go180
1 files changed, 97 insertions, 83 deletions
diff --git a/debugWindow.go b/debugWindow.go
index a831869..8b1caa7 100644
--- a/debugWindow.go
+++ b/debugWindow.go
@@ -1,7 +1,19 @@
package gui
+import (
+ "git.wit.org/wit/gui/toolkit"
+)
+
+// TODO: move all this shit into somewhere not global
+
+// main debugging window
var bugWin *Node
+// if there should be new windows or just tabs
+var makeTabs bool = true
+
var mapWindows map[string]*Node
+var checkd, checkdn, checkdt, checkdtk, lb1, lb2 *Node
+var myButton *Node
/*
Creates a window helpful for debugging this package
@@ -15,120 +27,122 @@ func DebugWindow() {
bugWin.DebugTab("Debug Tab")
}
-var checkd, checkdn, checkdt, checkdtk, lb1, lb2 *Node
-var myButton *Node
-
func (n *Node) DebugTab(title string) *Node {
- var newN, gog, g1, g2, g3, dd *Node
+ var newN, gog, g1 *Node
// time.Sleep(1 * time.Second)
newN = n.NewTab(title)
newN.Dump()
//////////////////////// main debug things //////////////////////////////////
- gog = newN.NewGroup("Debugging")
+ gog = newN.NewGroup("Debugging Windows:")
+
+ // generally useful debugging
+ cb := gog.NewCheckbox("Seperate windows")
+ cb.Custom = func() {
+ makeTabs = cb.widget.B
+ log(debugGui, "Custom() n.widget =", cb.widget.Name, cb.widget.B)
+ }
+ makeTabs = false
+ cb.Set(false)
gog.NewButton("Debug Flags", func () {
- newN.debugFlags(false)
+ newN.DebugFlags(makeTabs)
})
gog.NewButton("Debug Widgets", func () {
- newN.debugWidgets(false)
+ DebugWidgetWindow(newN)
})
gog.NewButton("GO Language Internals", func () {
- newN.debugGolangWindow(false)
+ newN.DebugGolangWindow(makeTabs)
})
gog.NewButton("GO Channels debug", func () {
- newN.debugGoChannels(false)
+ newN.DebugGoChannels(makeTabs)
})
-//////////////////////// window debugging things //////////////////////////////////
- g1 = newN.NewGroup("Current Windows")
- dd = g1.NewDropdown("Window Dropdown")
- dd.Custom = func() {
- name := dd.widget.S
- bugWin = mapWindows[name]
- log("The Window was set to", name)
- }
- log(debugGui, "dd =", dd)
+ gog.NewLabel("Force Quit:")
- // initialize the windows map if it hasn't been
- if (mapWindows == nil) {
- mapWindows = make(map[string]*Node)
- }
+ gog.NewButton("os.Exit()", func () {
+ exit()
+ })
- var dump = false
- var last = ""
- for _, child := range Config.master.children {
- log(debugGui, "\t\t", child.id, child.Width, child.Height, child.Name)
- if (child.parent != nil) {
- log(debugGui, "\t\t\tparent =",child.parent.id)
- } else {
- log(debugGui, "\t\t\tno parent")
- panic("no parent")
- }
- if (dump == true) {
- child.Dump()
- }
- dd.AddDropdownName(child.Name)
- last = child.Name
- mapWindows[child.Name] = child
- }
- dd.SetDropdownName(last)
+//////////////////////// window debugging things //////////////////////////////////
+ g1 = newN.NewGroup("list things")
- g2 = newN.NewGroup("Debug Window")
- g2.NewButton("SetMargined(tab)", func () {
- log(debugChange, "START SetMargined(tab)", g2.Name)
- // name := dd.GetText()
- name := dd.widget.S
- log(true, "name =", name)
- log(debugChange, "name =", name)
- log(debugChange, "mapWindows[name] =", mapWindows[name])
- /*
- for s, n := range mapWindows {
- log(debugChange, "\tname =", name)
- log(debugChange, "\tmapWindows s =", s)
- log(debugChange, "\tmapWindows[s] =", n)
- }
- */
- bugWin = mapWindows[name]
- log(debugChange, "END dd.widget.S =", dd.widget.S)
- // gw.UiTab.SetMargined(*gw.TabNumber, true)
- })
- g2.NewButton("Hide(tab)", func () {
- log(debugChange, "\tclick() START", g2.Name)
- // gw.UiTab.Hide()
+ g1.NewButton("List Windows", func () {
+ dropdownWindow(g1)
})
- g2.NewButton("Show(tab)", func () {
- // gw.UiTab.Show()
- })
- g2.NewButton("Delete(tab)", func () {
- // gw.UiTab.Delete(*gw.TabNumber)
- })
- g2.NewButton("change Title", func () {
- // mainWindow.SetText("hello world")
- })
- g2.NewButton("Quit", func () {
- exit()
+ g1.NewButton("List Window Widgets", func () {
+ dropdownWindowWidgets(g1)
})
- /////////////////////////////////////////////////////
- g3 = newN.NewGroup("Node Debug")
+ g2 := newN.NewGroup("node things")
- g3.NewButton("Node.Dump()", func () {
- debugGui = true
- debugDump = true
- bugWin.Dump()
+ g2.NewButton("Actions Window", func () {
+ DebugWidgetWindow(activeWidget)
})
- g3.NewButton("Node.ListChildren(false)", func () {
+ g2.NewButton("Node.ListChildren(false)", func () {
+ g := debugGui
+ d := debugDump
debugGui = true
debugDump = true
- bugWin.ListChildren(false)
+ activeWidget.ListChildren(false, nil, nil)
+ debugGui = g
+ debugDump = d
})
- g3.NewButton("Node.ListChildren(true)", func () {
+ g2.NewButton("Node.ListChildren(true)", func () {
+ g := debugGui
+ d := debugDump
debugGui = true
debugDump = true
- bugWin.ListChildren(true)
+ activeWidget.ListChildren(true, nil, nil)
+ debugGui = g
+ debugDump = d
})
return newN
}
+
+func dropdownWindow(p *Node) {
+ var mapWindows map[string]*Node
+ mapWindows = make(map[string]*Node)
+
+ dd := p.NewDropdown("Window Dropdown")
+ dd.Custom = func() {
+ name := dd.widget.S
+ activeWidget = mapWindows[name]
+ setActiveWidget(activeWidget)
+ log("The Window was set to", name)
+ }
+ log(debugGui, "dd =", dd)
+
+ // var last = ""
+ for _, child := range Config.master.children {
+ log(debugGui, "\t\t", child.id, child.Width, child.Height, child.Name)
+ // skip the fake "Flag" node
+ if (child.widget.Type == toolkit.Flag) {
+ continue
+ }
+ dd.AddDropdownName(child.Name)
+ // last = child.Name
+ mapWindows[child.Name] = child
+ if (activeWidget == nil) {
+ activeWidget = child
+ }
+ }
+ // dd.SetDropdownName(last)
+}
+
+func dropdownWindowWidgets(p *Node) {
+ var mapWindows map[string]*Node
+ mapWindows = make(map[string]*Node)
+
+ dd := p.NewDropdown("Window Widgets Dropdown")
+ dd.Custom = func() {
+ name := dd.widget.S
+ activeWidget = mapWindows[name]
+ setActiveWidget(activeWidget)
+ }
+ log(debugGui, "dd =", dd)
+
+ activeWidget.ListChildren(true, dd, mapWindows)
+}