summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-05-09 08:25:10 -0500
committerJeff Carr <[email protected]>2023-05-09 08:25:10 -0500
commite19a728d7fe0059b87e7af84c7155fd6559ced6d (patch)
treeb0e40a9102137b73570fc624df03c78f01aaa10e
parent52b197ebf33192eaeda64bbd4acb2e283a45b097 (diff)
andlabs grid placement still broken
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--button.go2
-rw-r--r--grid.go31
-rw-r--r--label.go9
-rw-r--r--plugin.go23
4 files changed, 39 insertions, 26 deletions
diff --git a/button.go b/button.go
index 6fd0906..d4dfe99 100644
--- a/button.go
+++ b/button.go
@@ -14,6 +14,7 @@ func (n *Node) NewButton(name string, custom func()) *Node {
return newNode
}
+/*
// deprecate this once andlabs is refactored
func callback(i int) bool {
log(debugError, "callback() for widget id =", i)
@@ -27,6 +28,7 @@ func callback(i int) bool {
n.Custom()
return true
}
+*/
// find widget by number
func (n *Node) FindId(i int) (*Node) {
diff --git a/grid.go b/grid.go
index 9bcc105..c2daaa5 100644
--- a/grid.go
+++ b/grid.go
@@ -27,10 +27,8 @@ func (n *Node) NewGrid(name string, w int, h int) *Node {
log(debugChange, "click() NewGrid not defined =", name)
})
- var a toolkit.Action
- a.ActionType = toolkit.Add
- a.Name = name
- a.Text = name
+ a := newAction(n, toolkit.Add)
+
a.X = w
a.Y = h
newNode.X = w
@@ -38,29 +36,20 @@ func (n *Node) NewGrid(name string, w int, h int) *Node {
newNode.NextX = 1
newNode.NextY = 1
- /*
- // fix values here if they are invalid. Index starts at 1
- if (where.NextX < 1) {
- where.NextX = 1
- }
- if (where.NextY < 1) {
- where.NextY = 1
- }
- //
- a.X = where.NextX
- a.Y = where.NextY
- */
+ sendAction(a, newNode, n)
- newaction(&a, newNode, n)
+ return newNode
+}
- /*
+// increments where the next element in the grid should go
+func placeGrid(a *toolkit.Action, n *Node, where *Node) {
where.NextY += 1
if (where.NextY > where.Y) {
where.NextX += 1
where.NextY = 1
}
- log(logInfo, "Action() END size (X,Y)", where.X, where.Y, "put next thing at (X,Y) =", where.NextX, where.NextY)
- */
- return newNode
+ a.X = where.NextX
+ a.Y = where.NextY
+ log(logNow, "placeGrid() (X,Y)", where.X, where.Y, " next(X,Y) =", where.NextX, where.NextY)
}
diff --git a/label.go b/label.go
index a7548e4..b3833e9 100644
--- a/label.go
+++ b/label.go
@@ -7,11 +7,10 @@ import (
func (n *Node) NewLabel(text string) *Node {
newNode := n.newNode(text, toolkit.Label, nil)
- var a toolkit.Action
- a.ActionType = toolkit.Add
- a.Name = text
- a.Text = text
- newaction(&a, newNode, n)
+ n.Name = text
+ n.Text = text
+ a := newAction(n, toolkit.Add)
+ sendAction(a, newNode, n)
return newNode
}
diff --git a/plugin.go b/plugin.go
index 85a20aa..31b47c3 100644
--- a/plugin.go
+++ b/plugin.go
@@ -203,6 +203,24 @@ func initToolkit(name string, filename string) *aplug {
return newPlug
}
+func newAction(n *Node, atype toolkit.ActionType) *toolkit.Action {
+ var a toolkit.Action
+ a.ActionType = atype
+ if (n == nil) {
+ return &a
+ }
+ a.Name = n.Name
+ a.Text = n.Text
+ a.WidgetId = n.id
+ a.WidgetType = n.WidgetType
+
+ return &a
+}
+
+func sendAction(a *toolkit.Action, n *Node, where *Node) {
+ newaction(a, n, where)
+}
+
// 2023/04/06 Queue() is also being used and channels are being used. memcopy() only
func newaction(a *toolkit.Action, n *Node, where *Node) {
// remove this
@@ -211,8 +229,12 @@ func newaction(a *toolkit.Action, n *Node, where *Node) {
a.WidgetType = n.WidgetType
a.ActionType = a.ActionType
}
+ // end remove
if (where != nil) {
a.ParentId = where.id
+ if (where.WidgetType == toolkit.Grid) {
+ placeGrid(a, n, where)
+ }
}
for _, aplug := range allPlugins {
@@ -224,6 +246,7 @@ func newaction(a *toolkit.Action, n *Node, where *Node) {
}
log(logInfo, "Action() SEND to pluginChan", aplug.name)
aplug.pluginChan <- *a
+ // added during debugging. might be a good idea in general for a tactile experience
sleep(.02)
}
}