diff options
Diffstat (limited to 'debugWindow.go')
| -rw-r--r-- | debugWindow.go | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/debugWindow.go b/debugWindow.go new file mode 100644 index 0000000..a831869 --- /dev/null +++ b/debugWindow.go @@ -0,0 +1,134 @@ +package gui + +var bugWin *Node +var mapWindows map[string]*Node + +/* + Creates a window helpful for debugging this package +*/ +func DebugWindow() { + Config.Title = "go.wit.org/gui debug window" + Config.Width = 300 + Config.Height = 200 + bugWin = NewWindow() + bugWin.Custom = bugWin.StandardClose + 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 + + // time.Sleep(1 * time.Second) + newN = n.NewTab(title) + newN.Dump() + +//////////////////////// main debug things ////////////////////////////////// + gog = newN.NewGroup("Debugging") + + gog.NewButton("Debug Flags", func () { + newN.debugFlags(false) + }) + gog.NewButton("Debug Widgets", func () { + newN.debugWidgets(false) + }) + gog.NewButton("GO Language Internals", func () { + newN.debugGolangWindow(false) + }) + gog.NewButton("GO Channels debug", func () { + newN.debugGoChannels(false) + }) + +//////////////////////// 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) + + // initialize the windows map if it hasn't been + if (mapWindows == nil) { + mapWindows = make(map[string]*Node) + } + + 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) + + 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() + }) + 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() + }) + + ///////////////////////////////////////////////////// + g3 = newN.NewGroup("Node Debug") + + g3.NewButton("Node.Dump()", func () { + debugGui = true + debugDump = true + bugWin.Dump() + }) + g3.NewButton("Node.ListChildren(false)", func () { + debugGui = true + debugDump = true + bugWin.ListChildren(false) + }) + g3.NewButton("Node.ListChildren(true)", func () { + debugGui = true + debugDump = true + bugWin.ListChildren(true) + }) + + return newN +} |
