new-gui/window-debug.go

120 lines
2.8 KiB
Go

package gui
import "log"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
import "github.com/davecgh/go-spew/spew"
var names = make([]string, 100)
func makeWindowDebug() ui.Control {
hbox := ui.NewHorizontalBox()
hbox.SetPadded(true)
/////////////////////////////////////////////////////
vbox := addGroup(hbox, "Numbers")
pbar := ui.NewProgressBar()
vbox.Append(pbar, false)
/////////////////////////////////////////////////////
vbox = addGroup(hbox, "WindowMap")
cbox := ui.NewCombobox()
for name, _ := range Data.WindowMap {
log.Println("range Data.WindowMap() name =", name)
addName(cbox, name)
}
vbox.Append(cbox, false)
cbox.OnSelected(func(*ui.Combobox) {
x := cbox.Selected()
log.Println("x =", x)
log.Println("names[x] =", names[x])
dumpBox(names[x])
})
/////////////////////////////////////////////////////
vbox = addGroup(hbox, "Buttons")
b1 := addButton(vbox, "dumpBox(name)")
b1.OnClicked(func(*ui.Button) {
x := cbox.Selected()
log.Println("x =", x)
log.Println("names[x] =", names[x])
dumpBox(names[x])
})
b2 := addButton(vbox, "something 2")
b2.OnClicked(func(*ui.Button) {
log.Println("Should do something here b2")
})
return hbox
}
var x int = 0
func addName(c *ui.Combobox, s string) {
c.Append(s)
names[x] = s
x = x + 1
}
func addGroup(b *ui.Box, name string) *ui.Box {
group := ui.NewGroup(name)
group.SetMargined(true)
b.Append(group, true)
vbox := ui.NewVerticalBox()
vbox.SetPadded(true)
group.SetChild(vbox)
return vbox
}
func dumpBox(s string) {
for name, window := range Data.WindowMap {
if (name != s) {
continue
}
log.Println("gui.DumpBoxes() MAP: ", name)
if (window.TabNumber == nil) {
log.Println("gui.DumpBoxes() \tWindows.TabNumber = nil")
} else {
log.Println("gui.DumpBoxes() \tWindows.TabNumber =", *window.TabNumber)
}
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)
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) {
scs := spew.ConfigState{MaxDepth: 1}
scs.Dump(abox.UiBox)
}
}
}
if (window.UiTab != nil) {
pages := window.UiTab.NumPages()
log.Println("gui.DumpBoxes()\tWindow.UiTab.NumPages() =", pages)
tabSetMargined(window.UiTab)
if (Config.Debug) {
scs := spew.ConfigState{MaxDepth: 2}
scs.Dump(window.UiTab)
}
}
}
}
func addButton(box *ui.Box, name string) *ui.Button {
button := ui.NewButton(name)
button.OnClicked(func(*ui.Button) {
log.Println("Should do something here")
})
box.Append(button, false)
return button
}