new-gui/debugWidget.go

181 lines
4.0 KiB
Go
Raw Normal View History

package gui
import (
"strconv"
)
var debugGrid *Node
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 = "Debug 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 () {
SetDebug(true)
a := gShow.NewButton("myButton", func () {
log("this code is more better")
})
SetDebug(false)
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.I, a.id)
}
DebugWidgetWindow(a)
})
gList.NewButton("Spinner", func () {
a := gShow.NewSpinner("tmp spinner", 6, 32)
a.Custom = func () {
log("custom spinner() a =", a.widget.I, a.id)
}
DebugWidgetWindow(a)
})
gList.NewButton("Dropdown", func () {
a := gShow.NewDropdown("tmp dropdown")
a.AddDropdownName("this is better than tcl/tk")
a.AddDropdownName("make something for tim")
a.AddDropdownName("for qflow")
a.Add("and for riscv")
a.Custom = func () {
log("custom dropdown() a =", a.widget.Name, a.widget.S)
}
DebugWidgetWindow(a)
})
gList.NewButton("Combobox", func () {
a := gShow.NewCombobox("tmp combobox")
a.Add("mirrors.wit.com")
a.Add("go.wit.org")
a.Custom = func () {
log("custom combobox() a =", a.widget.Name, a.widget.S)
}
DebugWidgetWindow(a)
})
gList.NewButton("Grid", func () {
// Grid numbering by (X,Y)
// -----------------------------
// -- (1,1) -- (2,1) -- (3,1) --
// -- (1,2) -- (2,1) -- (3,1) --
// -----------------------------
SetDebug(true)
debugGrid = gShow.NewGrid("tmp grid", 2, 3)
debugGrid.NewLabel("mirrors.wit.com")
SetDebug(false)
DebugWidgetWindow(debugGrid)
})
gList.NewButton("Image", func () {
a := gShow.NewTextbox("image")
DebugWidgetWindow(a)
})
}
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("Add('foo')", func () {
w.widget.Action = "Add"
w.widget.S = "foo"
send(w.parent, w)
})
g.NewButton("Delete('foo')", func () {
w.widget.Action = "Delete"
w.widget.S = "foo"
send(w.parent, w)
})
g.NewButton("SetMargin(true)", func () {
w.widget.Action = "SetMargin"
w.widget.B = true
send(w.parent, w)
})
g.NewButton("SetMargin(false)", func () {
w.widget.Action = "SetMargin"
w.widget.B = false
send(w.parent, w)
})
g.NewButton("Add button to (1,1)", func () {
w.widget.Action = "AddGrid"
w.widget.B = false
send(w.parent, w)
})
g.NewButton("Delete()", func () {
Delete(w)
})
}