new-gui/debug_widget.go

116 lines
2.4 KiB
Go

package gui
import (
"strconv"
)
func DebugWidgetWindow(w *Node) {
var win, g *Node
title := "ID =" + strconv.Itoa(w.id) + " " + w.widget.Name
Config.Title = title
Config.Width = 300
Config.Height = 400
win = NewWindow()
win.Custom = w.StandardClose
g = win.NewGroup("Actions")
g.NewLabel(title)
g.NewButton("Dump()", func () {
w.Dump()
})
g.NewButton("Disable()", func () {
w.widget.Action = "Disable"
send(w.parent, w)
})
g.NewButton("Enable()", func () {
w.widget.Action = "Enable"
send(w.parent, w)
})
g.NewButton("Show()", func () {
w.widget.Action = "Show"
send(w.parent, w)
})
g.NewButton("Hide()", func () {
w.widget.Action = "Hide"
send(w.parent, w)
})
g.NewButton("Value()", func () {
log("w.B =", w.widget.B)
log("w.I =", w.widget.I)
log("w.S =", w.widget.S)
})
g.NewButton("Set Value(20)", func () {
w.widget.Action = "Set"
w.widget.B = true
w.widget.I = 20
w.widget.S = "Set Value(20)"
send(w.parent, w)
})
g.NewButton("Delete()", func () {
Delete(w)
})
}
func (n *Node) debugWidgets(makeWindow bool) {
var w, gList, gShow *Node
// Either:
// make a new window
// make a new tab in the existing window
if (makeWindow) {
Config.Title = "Widgets"
Config.Width = 300
Config.Height = 400
w = NewWindow()
w.Custom = w.StandardClose
} else {
w = n.NewTab("Widgets")
}
w.Dump()
gList = w.NewGroup("Pick a widget to debug")
gShow = w.NewGroup("Added Widgets go here")
gList.NewButton("Button", func () {
a := gShow.NewButton("myButton", func () {
log("this code is more better")
})
DebugWidgetWindow(a)
})
gList.NewButton("Checkbox", func () {
a := gShow.NewCheckbox("myCheckbox")
a.Custom = func () {
log("custom checkox func a =", a.widget.B, a.id)
}
DebugWidgetWindow(a)
})
gList.NewButton("Label", func () {
a := gShow.NewLabel("mylabel")
DebugWidgetWindow(a)
})
gList.NewButton("Textbox", func () {
a := gShow.NewTextbox("mytext")
a.Custom = func () {
log("custom TextBox() a =", a.widget.S, a.id)
}
DebugWidgetWindow(a)
})
gList.NewButton("Slider", func () {
a := gShow.NewSlider("tmp slider", 10, 55)
a.Custom = func () {
log("custom slider() a =", a.widget.S, a.id)
}
DebugWidgetWindow(a)
})
gList.NewButton("Spinner", func () {
a := gShow.NewSpinner("tmp spinner", 6, 32)
a.Custom = func () {
log("custom spinner() a =", a.widget.S, a.id)
}
DebugWidgetWindow(a)
})
}