move towards var value any

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-01-11 00:52:49 -06:00
parent 3b402b28d1
commit 4bf3307671
1 changed files with 53 additions and 68 deletions

View File

@ -1,96 +1,92 @@
package main
import (
"reflect"
"strconv"
"go.wit.com/log"
"go.wit.com/gui/widget"
)
func (n *node) setText(a *widget.Action) {
log.Log(CHANGE, "setText() START with a.S =", a.S)
var name string
var A any
var k reflect.Kind
A = a.A
if a.A == nil {
log.Warn("setText a.A == nil")
A = ""
}
k = reflect.TypeOf(A).Kind()
switch k {
case reflect.Int:
var i int
i = A.(int)
name = strconv.Itoa(i)
case reflect.String:
name = A.(string)
case reflect.Bool:
if A.(bool) == true {
name = "true"
} else {
name = "false"
}
default:
log.Warn("setText uknown kind", k, "value =", A)
name = ""
}
log.Log(CHANGE, "setText() START with text =", name)
t := n.tk
if (t == nil) {
log.Log(ERROR, "setText error. tk == nil", n.Name, n.WidgetId)
actionDump(debugError, a)
return
}
log.Log(CHANGE, "setText() Attempt on", n.WidgetType, "with", a.S)
log.Log(CHANGE, "setText() Attempt on", n.WidgetType, "with", name)
switch n.WidgetType {
case widget.Window:
log.Warn("setText() Attempt to set the title to", a.S)
t.uiWindow.SetTitle(a.S)
log.Warn("setText() Attempt to set the title to", name)
t.uiWindow.SetTitle(name)
case widget.Tab:
case widget.Group:
t.uiGroup.SetTitle(a.S)
t.uiGroup.SetTitle(name)
case widget.Checkbox:
switch a.ActionType {
case widget.SetText:
t.uiCheckbox.SetText(a.S)
case widget.Get:
n.B = t.uiCheckbox.Checked()
case widget.Set:
// TODO: commented out while working on chan
t.uiCheckbox.SetChecked(a.B)
default:
log.Log(ERROR, "setText() unknown", a.ActionType, "on checkbox", n.Name)
}
t.uiCheckbox.SetText(name)
case widget.Textbox:
switch a.ActionType {
case widget.Set:
if (t.uiEntry != nil) {
t.uiEntry.SetText(a.S)
}
if (t.uiMultilineEntry != nil) {
t.uiMultilineEntry.SetText(a.S)
}
case widget.SetText:
if (t.uiEntry != nil) {
t.uiEntry.SetText(a.S)
}
if (t.uiMultilineEntry != nil) {
t.uiMultilineEntry.SetText(a.S)
}
default:
log.Log(ERROR, "setText() unknown", a.ActionType, "on checkbox", n.Name)
if (t.uiEntry != nil) {
t.uiEntry.SetText(name)
}
if (t.uiMultilineEntry != nil) {
t.uiMultilineEntry.SetText(name)
}
case widget.Label:
t.uiLabel.SetText(a.S)
t.uiLabel.SetText(name)
case widget.Button:
t.uiButton.SetText(a.S)
t.uiButton.SetText(name)
case widget.Slider:
switch a.ActionType {
case widget.Get:
n.I = t.uiSlider.Value()
case widget.Set:
t.uiSlider.SetValue(a.I)
default:
log.Log(ERROR, "setText() unknown", a.ActionType, "on checkbox", n.Name)
}
log.Log(ERROR, "setText() on slider unknown", a.ActionType, "on checkbox", n.Name)
case widget.Spinner:
switch a.ActionType {
case widget.Get:
n.I = t.uiSpinbox.Value()
case widget.Set:
t.uiSpinbox.SetValue(a.I)
default:
log.Log(ERROR, "setText() unknown", a.ActionType, "on checkbox", n.Name)
}
log.Log(ERROR, "setText() on spinner unknown", a.ActionType, "on checkbox", n.Name)
case widget.Dropdown:
var orig int
var i int = -1
var s string
orig = t.uiCombobox.Selected()
log.Log(CHANGE, "try to set the Dropdown to", a.S, "from", orig)
log.Log(CHANGE, "try to set the Dropdown to", name, "from", orig)
// try to find the string
for i, s = range t.val {
log.Log(CHANGE, "i, s", i, s)
if (a.S == s) {
if (name == s) {
t.uiCombobox.SetSelected(i)
log.Log(CHANGE, "setText() Dropdown worked.", n.S)
log.Log(CHANGE, "setText() Dropdown worked.", name)
return
}
}
log.Log(ERROR, "setText() Dropdown did not find:", a.S)
log.Log(ERROR, "setText() Dropdown did not find:", name)
// if i == -1, then there are not any things in the menu to select
if (i == -1) {
return
@ -100,20 +96,9 @@ func (n *node) setText(a *widget.Action) {
t.uiCombobox.SetSelected(i)
}
case widget.Combobox:
switch a.ActionType {
case widget.AddText:
t.AddComboboxName(a.S)
case widget.Set:
t.uiEditableCombobox.SetText(a.S)
n.S = a.S
case widget.SetText:
t.uiEditableCombobox.SetText(a.S)
n.S = a.S
default:
log.Log(ERROR, "setText() unknown", a.ActionType, "on checkbox", n.Name)
}
t.uiEditableCombobox.SetText(name)
default:
log.Log(ERROR, "plugin Send() Don't know how to setText on", n.WidgetType, "yet", a.ActionType)
}
log.Log(CHANGE, "setText() END with a.S =", a.S)
log.Log(CHANGE, "setText() END with name =", )
}