now should work without needed to actually display
a nice improvement. actual toolkit widgets arent' actually needed. It's faster and can run in the dark autotypist compiles and runs Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
751b6059c0
commit
32fe455bb5
102
basicCombobox.go
102
basicCombobox.go
|
@ -12,32 +12,29 @@
|
||||||
package gadgets
|
package gadgets
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/gui"
|
"go.wit.com/gui/gui"
|
||||||
)
|
)
|
||||||
|
|
||||||
type BasicCombobox struct {
|
type BasicCombobox struct {
|
||||||
ready bool
|
ready bool
|
||||||
name string
|
progname string
|
||||||
|
|
||||||
parent *gui.Node // parent widget
|
parent *gui.Node // parent widget
|
||||||
l *gui.Node // label widget
|
l *gui.Node // label widget
|
||||||
d *gui.Node // dropdown widget
|
d *gui.Node // dropdown widget
|
||||||
|
|
||||||
value string
|
|
||||||
label string
|
|
||||||
|
|
||||||
values map[string]string
|
|
||||||
|
|
||||||
Custom func()
|
Custom func()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *BasicCombobox) Get() string {
|
func (d *BasicCombobox) String() string {
|
||||||
if ! d.Ready() {return ""}
|
if ! d.Ready() {return ""}
|
||||||
return d.value
|
return d.d.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *BasicCombobox) SetText(s string) {
|
||||||
|
if ! d.Ready() {return}
|
||||||
|
d.d.SetText(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if the status is valid
|
// Returns true if the status is valid
|
||||||
|
@ -64,95 +61,28 @@ func (d *BasicCombobox) SetTitle(name string) {
|
||||||
d.d.SetText(name)
|
d.d.SetText(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *BasicCombobox) Add(value any) {
|
func (d *BasicCombobox) AddText(s string) {
|
||||||
if ! d.Ready() {return}
|
if ! d.Ready() {return}
|
||||||
log.Log(INFO, "BasicCombobox.Add() =", value)
|
log.Log(INFO, "BasicCombobox.Add() =", s)
|
||||||
|
d.d.AddText(s)
|
||||||
var b reflect.Kind
|
|
||||||
b = reflect.TypeOf(value).Kind()
|
|
||||||
|
|
||||||
switch b {
|
|
||||||
case reflect.Int:
|
|
||||||
var i int
|
|
||||||
i = value.(int)
|
|
||||||
s := strconv.Itoa(i)
|
|
||||||
if d.values[s] != "added" {
|
|
||||||
d.values[s] = "added"
|
|
||||||
d.d.AddDropdownName(s)
|
|
||||||
}
|
|
||||||
case reflect.String:
|
|
||||||
s := value.(string)
|
|
||||||
if d.values[s] != "added" {
|
|
||||||
d.values[s] = "added"
|
|
||||||
d.d.AddDropdownName(s)
|
|
||||||
}
|
|
||||||
case reflect.Bool:
|
|
||||||
if value.(bool) == true {
|
|
||||||
s := "true"
|
|
||||||
if d.values[s] != "added" {
|
|
||||||
d.values[s] = "added"
|
|
||||||
d.d.AddDropdownName(s)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
s := "false"
|
|
||||||
if d.values[s] != "added" {
|
|
||||||
d.values[s] = "added"
|
|
||||||
d.d.AddDropdownName(s)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *BasicCombobox) Set(value any) bool {
|
func NewBasicCombobox(p *gui.Node, label string) *BasicCombobox {
|
||||||
if ! d.Ready() {return false}
|
|
||||||
log.Log(INFO, "BasicCombobox.Set() =", value)
|
|
||||||
|
|
||||||
var b reflect.Kind
|
|
||||||
b = reflect.TypeOf(value).Kind()
|
|
||||||
|
|
||||||
switch b {
|
|
||||||
case reflect.Int:
|
|
||||||
var i int
|
|
||||||
i = value.(int)
|
|
||||||
s := strconv.Itoa(i)
|
|
||||||
d.d.SetText(s)
|
|
||||||
d.value = s
|
|
||||||
case reflect.String:
|
|
||||||
d.d.SetText(value.(string))
|
|
||||||
d.value = value.(string)
|
|
||||||
case reflect.Bool:
|
|
||||||
if value.(bool) == true {
|
|
||||||
d.d.SetText("true")
|
|
||||||
d.value = "true"
|
|
||||||
} else {
|
|
||||||
d.d.SetText("false")
|
|
||||||
d.value = "false"
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewBasicCombobox(p *gui.Node, name string) *BasicCombobox {
|
|
||||||
d := BasicCombobox {
|
d := BasicCombobox {
|
||||||
parent: p,
|
parent: p,
|
||||||
name: name,
|
progname: label,
|
||||||
ready: false,
|
ready: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
// various timeout settings
|
// various timeout settings
|
||||||
d.l = p.NewLabel(name)
|
d.l = p.NewLabel(label)
|
||||||
d.d = p.NewCombobox("")
|
d.d = p.NewCombobox()
|
||||||
d.d.Custom = func() {
|
d.d.Custom = func() {
|
||||||
d.value = d.d.GetText()
|
log.Warn("BasicCombobox.Custom() user changed value to =", d.d.String())
|
||||||
log.Warn("BasicCombobox.Custom() user changed value to =", d.value)
|
|
||||||
if d.Custom != nil {
|
if d.Custom != nil {
|
||||||
d.Custom()
|
d.Custom()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
d.values = make(map[string]string)
|
|
||||||
d.ready = true
|
d.ready = true
|
||||||
return &d
|
return &d
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,10 +30,12 @@ type BasicDropdown struct {
|
||||||
Custom func()
|
Custom func()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
func (d *BasicDropdown) Get() string {
|
func (d *BasicDropdown) Get() string {
|
||||||
if ! d.Ready() {return ""}
|
if ! d.Ready() {return ""}
|
||||||
return d.d.GetText()
|
return d.d.GetText()
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Returns true if the status is valid
|
// Returns true if the status is valid
|
||||||
func (d *BasicDropdown) Ready() bool {
|
func (d *BasicDropdown) Ready() bool {
|
||||||
|
@ -41,19 +43,33 @@ func (d *BasicDropdown) Ready() bool {
|
||||||
return d.ready
|
return d.ready
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *BasicDropdown) Add(value string) {
|
func (d *BasicDropdown) AddText(s string) {
|
||||||
if ! d.Ready() {return}
|
if ! d.Ready() {return}
|
||||||
log.Log(INFO, "BasicDropdown.Set() =", value)
|
log.Log(INFO, "BasicDropdown.AddText() =", s)
|
||||||
d.d.AddDropdownName(value)
|
d.d.AddText(s)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *BasicDropdown) SetText(s string) {
|
||||||
|
if ! d.Ready() {return}
|
||||||
|
log.Log(INFO, "BasicDropdown.SetText() =", s)
|
||||||
|
d.d.SetText(s)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *BasicDropdown) String() string {
|
||||||
|
if ! d.Ready() {return ""}
|
||||||
|
log.Log(INFO, "BasicDropdown.String()", d.d.String())
|
||||||
|
return d.d.String()
|
||||||
|
}
|
||||||
|
|
||||||
func (d *BasicDropdown) SetLabel(value string) bool {
|
func (d *BasicDropdown) SetLabel(value string) bool {
|
||||||
if ! d.Ready() {return false}
|
if ! d.Ready() {return false}
|
||||||
log.Log(INFO, "BasicDropdown.SetLabel() =", value)
|
log.Log(INFO, "BasicDropdown.SetLabel() =", value)
|
||||||
d.l.SetText(value)
|
d.l.SetText(value)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
func (d *BasicDropdown) Set(value string) bool {
|
func (d *BasicDropdown) Set(value string) bool {
|
||||||
if ! d.Ready() {return false}
|
if ! d.Ready() {return false}
|
||||||
log.Log(INFO, "BasicDropdown.Set() =", value)
|
log.Log(INFO, "BasicDropdown.Set() =", value)
|
||||||
|
@ -61,6 +77,7 @@ func (d *BasicDropdown) Set(value string) bool {
|
||||||
d.value = value
|
d.value = value
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
func NewBasicDropdown(p *gui.Node, name string) *BasicDropdown {
|
func NewBasicDropdown(p *gui.Node, name string) *BasicDropdown {
|
||||||
d := BasicDropdown {
|
d := BasicDropdown {
|
||||||
|
@ -71,9 +88,9 @@ func NewBasicDropdown(p *gui.Node, name string) *BasicDropdown {
|
||||||
|
|
||||||
// various timeout settings
|
// various timeout settings
|
||||||
d.l = p.NewLabel(name)
|
d.l = p.NewLabel(name)
|
||||||
d.d = p.NewDropdown("")
|
d.d = p.NewDropdown()
|
||||||
d.d.Custom = func() {
|
d.d.Custom = func() {
|
||||||
d.value = d.Get()
|
d.value = d.d.String()
|
||||||
log.Log(INFO, "BasicDropdown.Custom() user changed value to =", d.value)
|
log.Log(INFO, "BasicDropdown.Custom() user changed value to =", d.value)
|
||||||
if d.Custom != nil {
|
if d.Custom != nil {
|
||||||
d.Custom()
|
d.Custom()
|
||||||
|
|
|
@ -25,6 +25,7 @@ type BasicEntry struct {
|
||||||
Custom func()
|
Custom func()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
func (n *BasicEntry) Get() string {
|
func (n *BasicEntry) Get() string {
|
||||||
return n.value
|
return n.value
|
||||||
}
|
}
|
||||||
|
@ -37,6 +38,7 @@ func (n *BasicEntry) Set(value string) *BasicEntry {
|
||||||
n.value = value
|
n.value = value
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
func (n *BasicEntry) Enable() {
|
func (n *BasicEntry) Enable() {
|
||||||
log.Log(INFO, "BasicEntry.Enable()")
|
log.Log(INFO, "BasicEntry.Enable()")
|
||||||
|
@ -52,11 +54,13 @@ func (n *BasicEntry) Disable() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *BasicEntry) SetLabel(value string) *BasicEntry {
|
func (n *BasicEntry) String() string {
|
||||||
log.Log(INFO, "BasicEntry.SetLabel() =", value)
|
log.Log(INFO, "BasicEntry.SetLabel() =", n.v.String())
|
||||||
if (n.l != nil) {
|
return n.v.String()
|
||||||
n.l.Set(value)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (n *BasicEntry) SetLabel(s string) *BasicEntry {
|
||||||
|
n.l.SetText(s)
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +74,7 @@ func NewBasicEntry(p *gui.Node, name string) *BasicEntry {
|
||||||
d.l = p.NewLabel(name)
|
d.l = p.NewLabel(name)
|
||||||
d.v = p.NewEntryLine("")
|
d.v = p.NewEntryLine("")
|
||||||
d.v.Custom = func() {
|
d.v.Custom = func() {
|
||||||
d.value = d.v.GetText()
|
d.value = d.v.String()
|
||||||
log.Log(INFO, "BasicEntry.Custom() user changed value to =", d.value)
|
log.Log(INFO, "BasicEntry.Custom() user changed value to =", d.value)
|
||||||
if d.Custom != nil {
|
if d.Custom != nil {
|
||||||
d.Custom()
|
d.Custom()
|
||||||
|
|
|
@ -27,6 +27,7 @@ type BasicLabel struct {
|
||||||
Custom func()
|
Custom func()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
func (n *BasicLabel) Get() string {
|
func (n *BasicLabel) Get() string {
|
||||||
return n.value
|
return n.value
|
||||||
}
|
}
|
||||||
|
@ -39,6 +40,7 @@ func (n *BasicLabel) Set(value string) *BasicLabel {
|
||||||
n.value = value
|
n.value = value
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
func (ngui *Node) NewBasicLabel(name string) *BasicLabel {
|
func (ngui *Node) NewBasicLabel(name string) *BasicLabel {
|
||||||
var n *gui.Node
|
var n *gui.Node
|
||||||
|
@ -52,7 +54,7 @@ func (ngui *Node) NewBasicLabel(name string) *BasicLabel {
|
||||||
d.l = n.NewLabel(name)
|
d.l = n.NewLabel(name)
|
||||||
d.v = n.NewLabel("")
|
d.v = n.NewLabel("")
|
||||||
d.v.Custom = func() {
|
d.v.Custom = func() {
|
||||||
d.value = d.v.GetText()
|
d.value = d.v.String()
|
||||||
log.Log(INFO, "BasicLabel.Custom() user changed value to =", d.value)
|
log.Log(INFO, "BasicLabel.Custom() user changed value to =", d.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ func NewDurationSlider(n *gui.Node, label string, low time.Duration, high time.D
|
||||||
d.l = n.NewLabel(label)
|
d.l = n.NewLabel(label)
|
||||||
d.s = n.NewSlider(label, 0, 1000)
|
d.s = n.NewSlider(label, 0, 1000)
|
||||||
d.s.Custom = func () {
|
d.s.Custom = func () {
|
||||||
d.Duration = low + (high - low) * time.Duration(d.s.GetInt()) / 1000
|
d.Duration = low + (high - low) * time.Duration(d.s.Int()) / 1000
|
||||||
log.Println("d.Duration =", d.Duration)
|
log.Println("d.Duration =", d.Duration)
|
||||||
s := fmt.Sprintf("%s (%v)", d.Label, d.Duration)
|
s := fmt.Sprintf("%s (%v)", d.Label, d.Duration)
|
||||||
d.l.SetText(s)
|
d.l.SetText(s)
|
||||||
|
|
6
go.mod
6
go.mod
|
@ -3,13 +3,13 @@ module go.wit.com/gui/gadgets
|
||||||
go 1.21.4
|
go 1.21.4
|
||||||
|
|
||||||
require (
|
require (
|
||||||
go.wit.com/gui/gui v0.12.8
|
go.wit.com/gui/gui v0.12.10
|
||||||
go.wit.com/log v0.5.3
|
go.wit.com/log v0.5.5
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
go.wit.com/dev/alexflint/arg v1.4.5 // indirect
|
go.wit.com/dev/alexflint/arg v1.4.5 // indirect
|
||||||
go.wit.com/dev/alexflint/scalar v1.2.1 // indirect
|
go.wit.com/dev/alexflint/scalar v1.2.1 // indirect
|
||||||
go.wit.com/dev/davecgh/spew v1.1.3 // indirect
|
go.wit.com/dev/davecgh/spew v1.1.4 // indirect
|
||||||
go.wit.com/gui/widget v1.1.3 // indirect
|
go.wit.com/gui/widget v1.1.3 // indirect
|
||||||
)
|
)
|
||||||
|
|
12
go.sum
12
go.sum
|
@ -2,11 +2,11 @@ go.wit.com/dev/alexflint/arg v1.4.5 h1:asDx5f9IlfpknKjPBqqb2qndE91Pbo7ZDkWUgddfM
|
||||||
go.wit.com/dev/alexflint/arg v1.4.5/go.mod h1:wnWc+c6z8kSdDKYriMf6RpM+FiXmo5RYp/t4FNi0MU0=
|
go.wit.com/dev/alexflint/arg v1.4.5/go.mod h1:wnWc+c6z8kSdDKYriMf6RpM+FiXmo5RYp/t4FNi0MU0=
|
||||||
go.wit.com/dev/alexflint/scalar v1.2.1 h1:loXOcbVnd+8YeJRLey+XXidecBiedMDO00zQ26TvKNs=
|
go.wit.com/dev/alexflint/scalar v1.2.1 h1:loXOcbVnd+8YeJRLey+XXidecBiedMDO00zQ26TvKNs=
|
||||||
go.wit.com/dev/alexflint/scalar v1.2.1/go.mod h1:+rYsfxqdI2cwA8kJ7GCMwWbNJvfvWUurOCXLiwdTtSs=
|
go.wit.com/dev/alexflint/scalar v1.2.1/go.mod h1:+rYsfxqdI2cwA8kJ7GCMwWbNJvfvWUurOCXLiwdTtSs=
|
||||||
go.wit.com/dev/davecgh/spew v1.1.3 h1:hqnB5qsPgC2cLZaJXqQJspQ5n/Ugry9kyL3tLk0hVzQ=
|
go.wit.com/dev/davecgh/spew v1.1.4 h1:C9hj/rjlUpdK+E6aroyLjCbS5MFcyNUOuP1ICLWdNek=
|
||||||
go.wit.com/dev/davecgh/spew v1.1.3/go.mod h1:sihvWmnQ/09FWplnEmozt90CCVqBtGuPXM811tgfhFA=
|
go.wit.com/dev/davecgh/spew v1.1.4/go.mod h1:sihvWmnQ/09FWplnEmozt90CCVqBtGuPXM811tgfhFA=
|
||||||
go.wit.com/gui/gui v0.12.8 h1:YJ7YjdP9+vwWYVvMakaJPPpfPt9g33Iw0xfuwNQZkmA=
|
go.wit.com/gui/gui v0.12.10 h1:52wFdTqB/GpsFKYFTUvSbHQWNEXz114lhvTfMVrXpYM=
|
||||||
go.wit.com/gui/gui v0.12.8/go.mod h1:iALRA0qw7mn82MX21wrU0FOq/vR9l27If7ObNdOSlNE=
|
go.wit.com/gui/gui v0.12.10/go.mod h1:YgbFWxsGqZb45oLGaHim2GukPzPgMLQcVRRI0QkrGS8=
|
||||||
go.wit.com/gui/widget v1.1.3 h1:GvLzGSOF9tfmoh6HNbFdN+NSlBo2qeS/Ba2TnQQ1A1U=
|
go.wit.com/gui/widget v1.1.3 h1:GvLzGSOF9tfmoh6HNbFdN+NSlBo2qeS/Ba2TnQQ1A1U=
|
||||||
go.wit.com/gui/widget v1.1.3/go.mod h1:A6/FaiFQtAHTjgo7c4FrokXe6bXX1Cowo35b2Lgi31E=
|
go.wit.com/gui/widget v1.1.3/go.mod h1:A6/FaiFQtAHTjgo7c4FrokXe6bXX1Cowo35b2Lgi31E=
|
||||||
go.wit.com/log v0.5.3 h1:/zHkniOPusPEuX1R401rMny9uwSO/nSU/QOMx6qoEnE=
|
go.wit.com/log v0.5.5 h1:bK3b94uVKgev4jB5wg06FnvCFBEapQICTSH2YW+CWr4=
|
||||||
go.wit.com/log v0.5.3/go.mod h1:LzIzVxc2xJQxWQBtV9VbV605P4TOxmYDCl+BZF38yGE=
|
go.wit.com/log v0.5.5/go.mod h1:BaJBfHFqcJSJLXGQ9RHi3XVhPgsStxSMZRlaRxW4kAo=
|
||||||
|
|
|
@ -55,7 +55,7 @@ func NewLogFlag(n *gui.Node, lf *log.LogFlag) *LogFlag {
|
||||||
// various timeout settings
|
// various timeout settings
|
||||||
f.c = n.NewCheckbox(f.Name + ": " + f.Desc)
|
f.c = n.NewCheckbox(f.Name + ": " + f.Desc)
|
||||||
f.c.Custom = func() {
|
f.c.Custom = func() {
|
||||||
f.lf.Set(f.c.GetBool())
|
f.lf.Set(f.c.Bool())
|
||||||
log.Info("LogFlag.Custom() user changed value to =", f.lf.Get())
|
log.Info("LogFlag.Custom() user changed value to =", f.lf.Get())
|
||||||
}
|
}
|
||||||
f.c.Set(lf.Get())
|
f.c.Set(lf.Get())
|
||||||
|
|
24
oneLiner.go
24
oneLiner.go
|
@ -19,22 +19,16 @@ type OneLiner struct {
|
||||||
l *gui.Node // label widget
|
l *gui.Node // label widget
|
||||||
v *gui.Node // value widget
|
v *gui.Node // value widget
|
||||||
|
|
||||||
value string
|
|
||||||
label string
|
|
||||||
|
|
||||||
Custom func()
|
Custom func()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *OneLiner) Get() string {
|
func (n *OneLiner) String() string {
|
||||||
return n.value
|
return n.v.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *OneLiner) Set(value string) *OneLiner {
|
func (n *OneLiner) SetText(s string) *OneLiner {
|
||||||
log.Log(INFO, "OneLiner.Set() =", value)
|
log.Log(INFO, "OneLiner.Set() =", s)
|
||||||
if (n.v != nil) {
|
n.v.SetText(s)
|
||||||
n.v.Set(value)
|
|
||||||
}
|
|
||||||
n.value = value
|
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,18 +54,16 @@ func (n *OneLiner) Disable() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewOneLiner(n *gui.Node, name string) *OneLiner {
|
func NewOneLiner(n *gui.Node, label string) *OneLiner {
|
||||||
d := OneLiner {
|
d := OneLiner {
|
||||||
p: n,
|
p: n,
|
||||||
value: "",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// various timeout settings
|
// various timeout settings
|
||||||
d.l = n.NewLabel(name)
|
d.l = n.NewLabel(label)
|
||||||
d.v = n.NewLabel("")
|
d.v = n.NewLabel("")
|
||||||
d.v.Custom = func() {
|
d.v.Custom = func() {
|
||||||
d.value = d.v.GetText()
|
log.Log(INFO, "OneLiner.Custom() user changed value to =", d.v.String())
|
||||||
log.Log(INFO, "OneLiner.Custom() user changed value to =", d.value)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return &d
|
return &d
|
||||||
|
|
Loading…
Reference in New Issue