summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.go16
-rw-r--r--table.go35
2 files changed, 28 insertions, 23 deletions
diff --git a/init.go b/init.go
index 5a71eda..6605bc4 100644
--- a/init.go
+++ b/init.go
@@ -234,14 +234,18 @@ func (n *Node) gotUserEvent(a widget.Action) {
return
}
- if ok, pb := n.isWidgetInTable(); ok {
- log.Log(WARN, "widget is in pb table", n.id, n.progname, a.Value)
- if pb != nil {
- log.Log(WARN, "found pb table", pb.GetUuid())
- pb.Custom(n.id)
+ if ok, pb, w := n.isWidgetInTable(a.WidgetId); ok {
+ log.Log(WARN, "gui.gotUserEvent() action =", a)
+ log.Log(WARN, "gui.gotUserEvent() widget is in pb table", n.id, n.progname, a.Value)
+ if w == nil {
+ log.Log(WARN, "gui.gotUserEvent() widget == nil", n.id, n.progname, a.Value)
+ return
}
+ log.Log(WARN, "gui.gotUserEvent() found pb table", pb.GetUuid())
+ pb.Custom(w)
+ return
} else {
- log.Log(WARN, "widget is not in pb table", n.id, n.progname, a.Value)
+ log.Log(WARN, "gui.gotUserEvent() widget is not in pb table", n.id, n.progname, a.Value)
}
switch n.WidgetType {
diff --git a/table.go b/table.go
index 6210680..7b0a7e3 100644
--- a/table.go
+++ b/table.go
@@ -40,18 +40,18 @@ func (parent *Node) ShowTableCallback(pb *guipb.Table, f func(id int)) {
}
*/
-func (n *Node) findInTablePB(pb *guipb.Table) *guipb.Widget {
+func (n *Node) findInTablePB(pb *guipb.Table, id int) *guipb.Widget {
if n.tablepb == nil {
- log.Info("SOMETHING WAS WRONG. gui.findInTablePB() n.tablepb == nil for widget id", n.id)
+ log.Info("SOMETHING WAS WRONG. gui.findInTablePB() n.tablepb == nil for widget id", id)
return nil
}
for _, r := range pb.StringRows {
- if r.Header.Id == int64(n.id) {
+ if r.Header.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", r.Header)
return r.Header
}
for _, w := range r.Widgets {
- if w.Id == int64(n.id) {
+ if w.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", w)
return w
}
@@ -59,12 +59,13 @@ func (n *Node) findInTablePB(pb *guipb.Table) *guipb.Widget {
}
for _, r := range pb.ButtonRows {
- if r.Header.Id == int64(n.id) {
+ if r.Header.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", r.Header)
return r.Header
}
for _, w := range r.Widgets {
- if w.Id == int64(n.id) {
+ log.Info("gui.findInTablePB() checking widget", w)
+ if w.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", w)
return w
}
@@ -72,12 +73,12 @@ func (n *Node) findInTablePB(pb *guipb.Table) *guipb.Widget {
}
for _, r := range pb.IntRows {
- if r.Header.Id == int64(n.id) {
+ if r.Header.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", r.Header)
return r.Header
}
for _, w := range r.Widgets {
- if w.Id == int64(n.id) {
+ if w.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", w)
return w
}
@@ -85,33 +86,33 @@ func (n *Node) findInTablePB(pb *guipb.Table) *guipb.Widget {
}
for _, r := range pb.TimeRows {
- if r.Header.Id == int64(n.id) {
+ if r.Header.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", r.Header)
return r.Header
}
for _, w := range r.Widgets {
- if w.Id == int64(n.id) {
+ if w.Id == int64(id) {
log.Info("gui.findInTablePB() found widget", w)
return w
}
}
}
- log.Info("SOMETHING WAS WRONG. gui.findInTablePB() didn't find widget id", n.id)
+ log.Info("SOMETHING WAS WRONG. gui.findInTablePB() didn't find widget id", id)
return nil
}
-func (n *Node) isWidgetInTable() (bool, *guipb.Table) {
+func (n *Node) isWidgetInTable(id int) (bool, *guipb.Table, *guipb.Widget) {
if n.id == 0 {
- return false, nil
+ return false, nil, nil
}
if n.progname == "gridtablePB" {
- n.findInTablePB(n.tablepb)
- return true, n.tablepb
+ w := n.findInTablePB(n.tablepb, id)
+ return true, n.tablepb, w
}
if n.parent == nil {
- return false, nil
+ return false, nil, nil
}
- return n.parent.isWidgetInTable()
+ return n.parent.isWidgetInTable(id)
}
func (parent *Node) ShowTable(pb *guipb.Table) {