diff options
| author | Jeff Carr <[email protected]> | 2023-03-03 14:41:38 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-03-03 14:41:38 -0600 |
| commit | 49202eeafdad8e5780fefdad3d2f87fd4354725e (patch) | |
| tree | 5d749b5d4835c7a0395bd1f87b5d2d1d91b14a08 /debugWidget.go | |
| parent | 80317ec89c94beadcbf3775f84c6010b5ceef302 (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 'debugWidget.go')
| -rw-r--r-- | debugWidget.go | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/debugWidget.go b/debugWidget.go new file mode 100644 index 0000000..d76b554 --- /dev/null +++ b/debugWidget.go @@ -0,0 +1,180 @@ +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) + }) +} |
