summaryrefslogtreecommitdiff
path: root/debugWindow.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-03-03 14:41:38 -0600
committerJeff Carr <[email protected]>2023-03-03 14:41:38 -0600
commit49202eeafdad8e5780fefdad3d2f87fd4354725e (patch)
tree5d749b5d4835c7a0395bd1f87b5d2d1d91b14a08 /debugWindow.go
parent80317ec89c94beadcbf3775f84c6010b5ceef302 (diff)
release as v0.6.5v0.6.5
good standard release really clean interaction to plugin really clean debug flags implementation common doAppend() idea, but it probably won't work re-implement combobox. this code base almost doesn't suck slider & spinner set values now tab set margin works convert dropdown to Send() lots of other changes to try to implement single line Entry() I guess use golang file names even though internalally the go developers use underscore chars in the actual go sources. Maybe there is a reason for that? go channel debug window does something make a debug window for channels. add sample icons Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'debugWindow.go')
-rw-r--r--debugWindow.go134
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
+}