summaryrefslogtreecommitdiff
path: root/debug.go
diff options
context:
space:
mode:
Diffstat (limited to 'debug.go')
-rw-r--r--debug.go115
1 files changed, 90 insertions, 25 deletions
diff --git a/debug.go b/debug.go
index ec60df2..0b0baa4 100644
--- a/debug.go
+++ b/debug.go
@@ -1,26 +1,27 @@
package gui
-import "log"
-import "time"
-import "fmt"
-// import "reflect"
+import (
+ "fmt"
+ "log"
+ "time"
-// import "github.com/andlabs/ui"
-// import _ "github.com/andlabs/ui/winmanifest"
-import "github.com/davecgh/go-spew/spew"
-// import pb "git.wit.com/wit/witProtobuf"
+ "github.com/davecgh/go-spew/spew"
+)
+// WatchGUI() opens a goroutine
//
-// this watches the GUI primarily to process protobuf's
-// this is pointless or wrong but I use it for debugging
-//
+// From that goroutine, it dumps out debugging information every 4 seconds
+/*
+ TODO: add configuration triggers on what to dump out
+ TODO: allow this to be sent to /var/log, syslogd, systemd's journalctl, etc
+*/
func WatchGUI() {
count := 0
for {
- if (count > 20) {
+ if count > 20 {
log.Println("Sleep() in watchGUI()")
- if (Config.Debug) {
+ if Config.Debug {
DumpBoxes()
}
count = 0
@@ -30,10 +31,26 @@ func WatchGUI() {
}
}
+func DumpWindows() {
+ for name, _ := range Data.WindowMap {
+ log.Println("gui.DumpWindows() window =", name)
+ }
+}
+
+func DumpMap() {
+ for name, window := range Data.WindowMap {
+ log.Println("gui.DumpBoxes() MAP: ", name)
+ log.Println("gui.DumpBoxes() BOXES:", name)
+ for name, abox := range window.BoxMap {
+ log.Printf("gui.DumpBoxes() \tBOX mapname=%-12s abox.Name=%-12s", name, abox.Name)
+ }
+ }
+}
+
func DumpBoxes() {
for name, window := range Data.WindowMap {
log.Println("gui.DumpBoxes() MAP: ", name)
- if (window.TabNumber == nil) {
+ if window.TabNumber == nil {
log.Println("gui.DumpBoxes() \tWindows.TabNumber = nil")
} else {
log.Println("gui.DumpBoxes() \tWindows.TabNumber =", *window.TabNumber)
@@ -41,16 +58,17 @@ func DumpBoxes() {
log.Println("gui.DumpBoxes()\tWindow.name =", window.Name)
// log.Println("gui.DumpBoxes()\tWindow.UiWindow type =", reflect.TypeOf(window.UiWindow))
log.Println("gui.DumpBoxes()\tWindow.UiWindow =", window.UiWindow)
+ log.Println("gui.DumpBoxes()\tWindow.UiTab =", window.UiTab)
for name, abox := range window.BoxMap {
log.Printf("gui.DumpBoxes() \tBOX mapname=%-12s abox.Name=%-12s", name, abox.Name)
- if (name == "MAINBOX") {
- if (Config.Debug) {
+ if name == "MAINBOX" {
+ if Config.Debug {
scs := spew.ConfigState{MaxDepth: 1}
scs.Dump(abox.UiBox)
}
}
}
- if (window.UiTab != nil) {
+ if window.UiTab != nil {
// log.Println("gui.DumpBoxes()\tWindow.UiTab type =", reflect.TypeOf(window.UiTab))
// log.Println("gui.DumpBoxes()\tWindow.UiTab =", window.UiTab)
pages := window.UiTab.NumPages()
@@ -61,20 +79,20 @@ func DumpBoxes() {
// tmp := spew.NewDefaultConfig()
// tmp.MaxDepth = 2
// tmp.Dump(window.UiTab)
- if (Config.Debug) {
+ if Config.Debug {
scs := spew.ConfigState{MaxDepth: 2}
scs.Dump(window.UiTab)
}
}
}
/*
- for i, window := range Data.Windows {
- if (window.TabNumber == nil) {
- log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber = nil")
- } else {
- log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber =", *window.TabNumber)
+ for i, window := range Data.Windows {
+ if (window.TabNumber == nil) {
+ log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber = nil")
+ } else {
+ log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber =", *window.TabNumber)
+ }
}
- }
*/
}
@@ -86,10 +104,57 @@ func addTableTab() {
var b TableColumnData
b.CellType = foo
- b.Heading = fmt.Sprintf("heading%d", key)
+ b.Heading = fmt.Sprintf("heading%d", key)
parts = append(parts, b)
}
log.Println("Sleep for 1 second, then try to add new tabs")
time.Sleep(1 * time.Second)
}
+
+func (dn *GuiData) DumpNodeMap() {
+ log.Println("DebugDataNodeMap():")
+ for name, node := range dn.NodeMap {
+ log.Println("\tNode =", node.id, node.Width, node.Height, name)
+ if (node.children == nil) {
+ log.Println("\t\tNo children")
+ } else {
+ log.Println("\t\tHas children:", node.children)
+ }
+ // node.SetName("yahoo")
+ // log.Println("\tData.NodeMap node =", node)
+ }
+}
+
+/*
+func DebugDataNodeChildren() {
+ if Data.NodeMap == nil {
+ log.Println("DebugDataNodeChildren() NodeMap == nil")
+ return
+ }
+ log.Println("DebugDataNodeChildren():")
+ for name, node := range Data.NodeMap {
+ log.Println("\tNode name =", node.Width, node.Height, name)
+ if (node.children == nil) {
+ log.Println("\t\tNo children")
+ break
+ }
+ log.Println("\t\tHas children:", node.children)
+ }
+}
+*/
+
+func (dn *GuiData) ListChildren(dump bool) {
+ if Data.NodeMap == nil {
+ log.Println("gui.Data.ListChildren() Data.NodeMap == nil")
+ return
+ }
+ log.Println("gui.Data.ListChildren() Data.NodeMap:")
+ for name, node := range Data.NodeMap {
+ log.Println("\tgui.Data.ListChildren() node =", node.id, node.Width, node.Height, name)
+ if (dump == true) {
+ node.Dump()
+ }
+ node.ListChildren(dump)
+ }
+}