summaryrefslogtreecommitdiff
path: root/delete.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-17 23:54:19 -0600
committerJeff Carr <[email protected]>2024-01-17 23:54:19 -0600
commitb25f15ea7803e172204432082740d081e5f19f81 (patch)
tree025146f42287e7b5d91850366f7fccf49d8ced9b /delete.go
the golang way. everything in it's own repov0.0.1
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'delete.go')
-rw-r--r--delete.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/delete.go b/delete.go
new file mode 100644
index 0000000..7d29bf2
--- /dev/null
+++ b/delete.go
@@ -0,0 +1,54 @@
+package main
+
+// if you include more than just this import
+// then your plugin might be doing something un-ideal (just a guess from 2023/02/27)
+import (
+ "go.wit.com/lib/widget"
+ "go.wit.com/log"
+)
+
+// delete the child widget from the parent
+// p = parent, c = child
+func (n *node) destroy() {
+ pId := n.parent.WidgetId
+ cId := n.WidgetId
+ log.Log(NOW, "delete()", pId, cId)
+
+ pt := n.parent.tk
+ ct := n.tk
+ if ct == nil {
+ log.Log(NOW, "delete FAILED (ct = mapToolkit[c] == nil) for c", pId, cId)
+ // this pukes out a whole universe of shit
+ // listMap()
+ return
+ }
+
+ switch n.WidgetType {
+ case widget.Button:
+ log.Log(NOW, "Should delete Button here:", n.progname)
+ log.Log(NOW, "Parent:")
+ pt.Dump(true)
+ log.Log(NOW, "Child:")
+ ct.Dump(true)
+ if pt.uiBox == nil {
+ log.Log(NOW, "Don't know how to destroy this")
+ } else {
+ log.Log(NOW, "Fuck it, destroy the whole box", n.parent.progname)
+ // pt.uiBox.Destroy() // You have a bug: You cannot destroy a uiControl while it still has a parent.
+ pt.uiBox.SetPadded(false)
+ pt.uiBox.Delete(4)
+ ct.uiButton.Disable()
+ // ct.uiButton.Hide()
+ ct.uiButton.Destroy()
+ }
+
+ case widget.Window:
+ log.Log(NOW, "Should delete Window here:", n.progname)
+ default:
+ log.Log(NOW, "Fuckit, let's destroy a button")
+ if ct.uiButton != nil {
+ pt.uiBox.Delete(4)
+ ct.uiButton.Destroy()
+ }
+ }
+}