summaryrefslogtreecommitdiff
path: root/debugWidget.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-03-12 08:47:16 -0500
committerJeff Carr <[email protected]>2023-03-12 08:47:16 -0500
commit20f13a4b5be1a986e1085214f492a0afe6db322f (patch)
tree35d633c45a36798126520269e13ae70dd70b5b20 /debugWidget.go
parent49202eeafdad8e5780fefdad3d2f87fd4354725e (diff)
Squashed commit of the following:
commit 448abc843e2241bab6c399f7a836dccba1defc18 Author: Jeff Carr <[email protected]> Date: Sun Mar 12 08:35:28 2023 -0500 this should probably be a new release now Signed-off-by: Jeff Carr <[email protected]> commit a4064f7a6c5ac67437768aa2bc67c75dafc91c4c Author: Jeff Carr <[email protected]> Date: Sat Mar 11 03:18:23 2023 -0600 able to work on add 'Box' and play with 'Image' Signed-off-by: Jeff Carr <[email protected]> commit 6e59573d85e82ecb005805f50711dddc2df50480 Author: Jeff Carr <[email protected]> Date: Sat Mar 11 03:04:34 2023 -0600 rearrange widget debugging Signed-off-by: Jeff Carr <[email protected]> commit e0570de75c6eb1b4f49e541d9ef5d83ae4434d3d Author: Jeff Carr <[email protected]> Date: Sat Mar 11 02:29:20 2023 -0600 debugging is lots smarter Signed-off-by: Jeff Carr <[email protected]> commit ece32a1e43d91cd197d0a8497ad2f034c46126e1 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 21:38:23 2023 -0600 first pass on a node delete Signed-off-by: Jeff Carr <[email protected]> commit c91cb0eddb0f73f8dea9b21a16cd76c7e2c19a33 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 21:06:29 2023 -0600 can recreate window list Signed-off-by: Jeff Carr <[email protected]> commit 470f9dc26aefd3626b319264fe151aa48d4d5377 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 12:07:34 2023 -0600 attempt to ressurect mouse in the console plugin Signed-off-by: Jeff Carr <[email protected]> commit 747bb53e06dda458cc8cd77b665f4d9d07f5e925 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 10:47:14 2023 -0600 jesus. gocui actually builds and works again as a plugin it didn't take too much to change it Signed-off-by: Jeff Carr <[email protected]> commit 9283c65c8e9b8d2630b251ad952b6b52caddb307 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 07:26:53 2023 -0600 show/hide/etc for window widgets Signed-off-by: Jeff Carr <[email protected]> commit 5724cd7ffd8595ae049a7c9c21cb2f1a993c4b76 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 06:40:36 2023 -0600 compiles and runs Signed-off-by: Jeff Carr <[email protected]> commit 44a5e69ce17cb506adfe24ca72cc86caa9ebcc70 Author: Jeff Carr <[email protected]> Date: Fri Mar 10 05:57:15 2023 -0600 more debugging improvements Signed-off-by: Jeff Carr <[email protected]> commit b86f145f0252e7545b2e7fa78e1d5960cacb7bad Author: Jeff Carr <[email protected]> Date: Fri Mar 10 03:42:32 2023 -0600 set margin on tab's works Signed-off-by: Jeff Carr <[email protected]> commit d2218c08cf44acd5f017a8faa1439ee6d2fd46d5 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:26:21 2023 -0600 ignore all *.so files Signed-off-by: Jeff Carr <[email protected]> commit e21934fff3cfea30b04df01bf0714f6927aa78f4 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:25:15 2023 -0600 can't embed the toolkit/*.so files here Signed-off-by: Jeff Carr <[email protected]> commit f1e6c5fc9c8ca36db3ad6109d64612b6850fa856 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:21:14 2023 -0600 andlabs group widget has Show() and Hide() Signed-off-by: Jeff Carr <[email protected]> commit e8487504aa76ca99c4891b777585a428fda0ef62 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 16:07:56 2023 -0600 pass the node id into the plugin to use in channels Signed-off-by: Jeff Carr <[email protected]> commit 3667940a77af4e3855facb9247771d595477302f Author: Jeff Carr <[email protected]> Date: Thu Mar 9 14:20:21 2023 -0600 fix SetText() on Label Signed-off-by: Jeff Carr <[email protected]> commit 311d6be66db84b63fb7124df64e2e9be0f0b76a4 Author: Jeff Carr <[email protected]> Date: Thu Mar 9 14:06:46 2023 -0600 still compiles and runs Signed-off-by: Jeff Carr <[email protected]> commit ee4e9b21ef59a97f902c6dae2a57ac7b3063fe3b Author: Jeff Carr <[email protected]> Date: Thu Mar 9 11:02:34 2023 -0600 compiles Signed-off-by: Jeff Carr <[email protected]> Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'debugWidget.go')
-rw-r--r--debugWidget.go339
1 files changed, 216 insertions, 123 deletions
diff --git a/debugWidget.go b/debugWidget.go
index d76b554..031f76d 100644
--- a/debugWidget.go
+++ b/debugWidget.go
@@ -2,179 +2,272 @@ package gui
import (
"strconv"
+ "git.wit.org/wit/gui/toolkit"
)
+
+// global var for checking to see if this
+// window/tab for debugging a widget exists
+// check the binary tree instead (?) for a window called "Widgets" (bad idea)
+var bugWidget *Node
+
+// the widget all these actions are run against
+var activeWidget *Node
+// the label where the user can see which widget is active
+var activeLabel *Node
+var activeLabelType *Node
+
+// tmp junk
var debugGrid *Node
+var debugGridLabel *Node
+var debugWidgetBut1, debugWidgetBut2 *Node
+
+func setActiveWidget(w *Node) {
+ if (activeLabel == nil) {
+ // the debug window doesn't exist yet
+ // TODO: make a fake binary tree for this(?)
+ return
+ }
+ if (w == nil) {
+ log(debugError, "setActiveWidget() was sent nil !!!")
+ return
+ }
+ activeWidget = w
+ log(true, "The Widget is set to", w.id, w.Name)
+ title := "ID =" + strconv.Itoa(w.id) + " " + w.widget.Name
+ activeLabel.SetText(title)
+ activeLabelType.SetText("widget.Type = " + w.widget.Type.String())
+
+ // temporary stuff
+ if (w.widget.Type == toolkit.Window) {
+ debugWidgetBut1.widget.Action = "Enable"
+ send(debugWidgetBut1.parent, debugWidgetBut1)
+ debugWidgetBut2.widget.Action = "Enable"
+ send(debugWidgetBut2.parent, debugWidgetBut2)
+ } else {
+ debugWidgetBut1.widget.Action = "Disable"
+ send(debugWidgetBut1.parent, debugWidgetBut1)
+ debugWidgetBut2.widget.Action = "Disable"
+ send(debugWidgetBut2.parent, debugWidgetBut2)
+ }
+ return
+}
-func (n *Node) debugWidgets(makeWindow bool) {
- var w, gList, gShow *Node
+func DebugWidgetWindow(w *Node) {
+ if (bugWidget != nil) {
+ // this window was already created. Just change the widget we are working against
+ setActiveWidget(w)
+ return
+ }
// Either:
// make a new window
// make a new tab in the existing window
- if (makeWindow) {
- Config.Title = "Debug Widgets"
+ if (makeTabs) {
+ Config.Title = "Widgets"
Config.Width = 300
Config.Height = 400
- w = NewWindow()
- w.Custom = w.StandardClose
+ bugWidget = NewWindow()
+ bugWidget.Custom = bugWidget.StandardClose
} else {
- w = n.NewTab("Widgets")
+ bugWidget = bugWin.NewTab("Widgets")
}
- w.Dump()
- gList = w.NewGroup("Pick a widget to debug")
- gShow = w.NewGroup("Added Widgets go here")
+ g := bugWidget.NewGroup("widget:")
+
+ activeLabel = g.NewLabel("undef")
+ activeLabelType = g.NewLabel("undef")
+
+ // common things that should work against each widget
+ g = bugWidget.NewGroup("common things")
+ g.NewButton("Disable()", func () {
+ activeWidget.widget.Action = "Disable"
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Enable()", func () {
+ activeWidget.widget.Action = "Enable"
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Show()", func () {
+ activeWidget.widget.Action = "Show"
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Hide()", func () {
+ activeWidget.widget.Action = "Hide"
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Delete()", func () {
+ Delete(activeWidget)
+ })
+ g.NewButton("Dump()", func () {
+ g := debugGui
+ d := debugDump
+ debugGui = true
+ debugDump = true
+ activeWidget.Dump()
+ debugGui = g
+ debugDump = d
+ })
+
+ newG := bugWidget.NewGroup("add things")
+ newG.debugAddWidgetButtons()
+
+ g = bugWidget.NewGroup("change things")
+ g.NewButton("SetMargin(true)", func () {
+ activeWidget.widget.Action = "SetMargin"
+ activeWidget.widget.B = true
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("SetMargin(false)", func () {
+ activeWidget.widget.Action = "SetMargin"
+ activeWidget.widget.B = false
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Value()", func () {
+ log("activeWidget.B =", activeWidget.widget.B)
+ log("activeWidget.I =", activeWidget.widget.I)
+ log("activeWidget.S =", activeWidget.widget.S)
+ })
+ g.NewButton("Set(true)", func () {
+ activeWidget.widget.Action = "Set"
+ activeWidget.widget.B = true
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Set(false)", func () {
+ activeWidget.widget.Action = "Set"
+ activeWidget.widget.B = false
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Set(20)", func () {
+ activeWidget.widget.Action = "Set"
+ activeWidget.widget.B = true
+ activeWidget.widget.I = 20
+ activeWidget.widget.S = "20"
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("SetText('foo')", func () {
+ activeWidget.widget.Action = "Set"
+ activeWidget.widget.S = "foo"
+ send(activeWidget.parent, activeWidget)
+ })
+ g.NewButton("Delete()", func () {
+ activeWidget.widget.Action = "Delete"
+ send(activeWidget.parent, activeWidget)
+ })
+ debugWidgetBut1 = g.NewButton("SetRaw(true)", func () {
+ activeWidget.widget.Action = "SetRaw"
+ activeWidget.widget.B = true
+ send(activeWidget.parent, activeWidget)
+ })
+ debugWidgetBut2 = g.NewButton("SetRaw(false)", func () {
+ activeWidget.widget.Action = "SetRaw"
+ activeWidget.widget.B = false
+ send(activeWidget.parent, activeWidget)
+ })
- gList.NewButton("Button", func () {
- SetDebug(true)
- a := gShow.NewButton("myButton", func () {
- log("this code is more better")
- })
- SetDebug(false)
- DebugWidgetWindow(a)
+ g = bugWidget.NewGroup("not working?")
+ g.NewButton("Add('foo')", func () {
+ activeWidget.widget.Action = "Add"
+ activeWidget.widget.S = "foo"
+ send(activeWidget.parent, activeWidget)
})
- gList.NewButton("Checkbox", func () {
- a := gShow.NewCheckbox("myCheckbox")
+ g.NewButton("Add button to (1,1)", func () {
+ activeWidget.widget.Action = "AddGrid"
+ activeWidget.widget.B = false
+ send(activeWidget, debugGridLabel)
+ // debugGrid = gShoactiveWidget.NewGrid("tmp grid", 2, 3)
+ })
+
+ setActiveWidget(g)
+}
+
+func (n *Node) debugAddWidgetButtons() {
+ n.NewButton("Button", func () {
+ a := activeWidget.NewButton("myButton", nil)
a.Custom = func () {
- log("custom checkox func a =", a.widget.B, a.id)
+ log("this code is more better", a.widget.B, "id=", a.id)
}
- DebugWidgetWindow(a)
})
- gList.NewButton("Label", func () {
- a := gShow.NewLabel("mylabel")
- DebugWidgetWindow(a)
+ n.NewButton("Checkbox", func () {
+ a := activeWidget.NewCheckbox("myCheckbox")
+ a.Custom = func () {
+ log("custom checkox func a=", a.widget.B, "id=", a.id)
+ }
+ })
+ n.NewButton("Label", func () {
+ activeWidget.NewLabel("mylabel")
})
- gList.NewButton("Textbox", func () {
- a := gShow.NewTextbox("mytext")
+ n.NewButton("Textbox", func () {
+ a := activeWidget.NewTextbox("mytext")
a.Custom = func () {
- log("custom TextBox() a =", a.widget.S, a.id)
+ log("custom TextBox() a =", a.widget.S, "id=", a.id)
}
- DebugWidgetWindow(a)
})
- gList.NewButton("Slider", func () {
- a := gShow.NewSlider("tmp slider", 10, 55)
+ n.NewButton("Slider", func () {
+ a := activeWidget.NewSlider("tmp slider", 10, 55)
a.Custom = func () {
- log("custom slider() a =", a.widget.I, a.id)
+ log("custom slider() a =", a.widget.I, "id=", a.id)
}
- DebugWidgetWindow(a)
})
- gList.NewButton("Spinner", func () {
- a := gShow.NewSpinner("tmp spinner", 6, 32)
+ n.NewButton("Spinner", func () {
+ a := activeWidget.NewSpinner("tmp spinner", 6, 32)
a.Custom = func () {
- log("custom spinner() a =", a.widget.I, a.id)
+ log("custom spinner() a =", a.widget.I, "id=", a.id)
}
- DebugWidgetWindow(a)
})
- gList.NewButton("Dropdown", func () {
- a := gShow.NewDropdown("tmp dropdown")
+ n.NewButton("Dropdown", func () {
+ a := activeWidget.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)
+ log("custom dropdown() a =", a.widget.Name, a.widget.S, "id=", a.id)
}
- DebugWidgetWindow(a)
})
- gList.NewButton("Combobox", func () {
- a := gShow.NewCombobox("tmp combobox")
+ n.NewButton("Combobox", func () {
+ a := activeWidget.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)
+ log("custom combobox() a =", a.widget.Name, a.widget.S, "id=", a.id)
}
- DebugWidgetWindow(a)
})
- gList.NewButton("Grid", func () {
+ n.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)
+ // SetDebug(true)
+ debugGrid = activeWidget.NewGrid("tmp grid", 2, 3)
+ debugGridLabel = debugGrid.NewLabel("mirrors.wit.com")
+ // SetDebug(false)
+ DebugWidgetWindow(debugGrid)
})
- 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)
+ n.NewButton("Image", func () {
+ activeWidget.NewImage("image")
})
- g.NewButton("Add('foo')", func () {
- w.widget.Action = "Add"
- w.widget.S = "foo"
- send(w.parent, w)
+ n.NewButton("Tab", func () {
+ activeWidget.NewTab("myTab")
})
- 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)
+ n.NewButton("Group", func () {
+ a := activeWidget.NewGroup("myGroup")
+ a.Custom = func () {
+ log("this code is more better", a.widget.B, "id=", a.id)
+ }
})
- g.NewButton("Add button to (1,1)", func () {
- w.widget.Action = "AddGrid"
- w.widget.B = false
- send(w.parent, w)
+ n.NewButton("Box(horizontal)", func () {
+ a := activeWidget.NewBox("hBox", true)
+ a.Custom = func () {
+ log("this code is more better", a.widget.B, "id=", a.id)
+ }
})
- g.NewButton("Delete()", func () {
- Delete(w)
+ n.NewButton("Box(vertical)", func () {
+ a := activeWidget.NewBox("vBox", true)
+ a.Custom = func () {
+ log("this code is more better", a.widget.B, "id=", a.id)
+ }
})
}