diff options
Diffstat (limited to 'debugWindow.go')
| -rw-r--r-- | debugWindow.go | 180 |
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) +} |
