attempt at log.Register(guiDebug) debugging flag
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
606f9d5ec0
commit
d2b3f7e074
8
args.go
8
args.go
|
@ -2,6 +2,8 @@ package gui
|
||||||
|
|
||||||
import (
|
import (
|
||||||
arg "github.com/alexflint/go-arg"
|
arg "github.com/alexflint/go-arg"
|
||||||
|
|
||||||
|
newlog "go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
var argGui ArgsGui
|
var argGui ArgsGui
|
||||||
|
@ -15,6 +17,12 @@ type ArgsGui struct {
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
arg.Register(&argGui)
|
arg.Register(&argGui)
|
||||||
|
|
||||||
|
newlog.Register("gui", "debugGui", &debugGui)
|
||||||
|
|
||||||
|
for _, s := range newlog.ListAll() {
|
||||||
|
newlog.Info("go.wit.org/gui ListAll() returned:", s)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns the toolkit
|
// returns the toolkit
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
/*
|
||||||
|
A Labeled Combobox widget:
|
||||||
|
|
||||||
|
-----------------------------
|
||||||
|
| | |
|
||||||
|
| Food: | <dropdown> |
|
||||||
|
| | |
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
The user can then edit the dropdown field and type anything into it
|
||||||
|
*/
|
||||||
|
package gadgets
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go.wit.com/log"
|
||||||
|
"go.wit.com/gui"
|
||||||
|
)
|
||||||
|
|
||||||
|
type BasicCombobox struct {
|
||||||
|
ready bool
|
||||||
|
name string
|
||||||
|
|
||||||
|
parent *gui.Node // parent widget
|
||||||
|
l *gui.Node // label widget
|
||||||
|
d *gui.Node // dropdown widget
|
||||||
|
|
||||||
|
value string
|
||||||
|
label string
|
||||||
|
|
||||||
|
Custom func()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *BasicCombobox) Get() string {
|
||||||
|
if ! d.Ready() {return ""}
|
||||||
|
return d.value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns true if the status is valid
|
||||||
|
func (d *BasicCombobox) Ready() bool {
|
||||||
|
if d == nil {return false}
|
||||||
|
return d.ready
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *BasicCombobox) Add(value string) {
|
||||||
|
if ! d.Ready() {return}
|
||||||
|
log.Println("BasicCombobox.Add() =", value)
|
||||||
|
d.d.AddDropdownName(value)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *BasicCombobox) Set(value string) bool {
|
||||||
|
if ! d.Ready() {return false}
|
||||||
|
log.Println("BasicCombobox.Set() =", value)
|
||||||
|
d.d.SetText(value)
|
||||||
|
d.value = value
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewBasicCombobox(p *gui.Node, name string) *BasicCombobox {
|
||||||
|
d := BasicCombobox {
|
||||||
|
parent: p,
|
||||||
|
name: name,
|
||||||
|
ready: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
// various timeout settings
|
||||||
|
d.l = p.NewLabel(name)
|
||||||
|
d.d = p.NewCombobox("")
|
||||||
|
d.d.Custom = func() {
|
||||||
|
d.value = d.Get()
|
||||||
|
log.Println("BasicCombobox.Custom() user changed value to =", d.value)
|
||||||
|
if d.Custom != nil {
|
||||||
|
d.Custom()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
d.ready = true
|
||||||
|
return &d
|
||||||
|
}
|
Loading…
Reference in New Issue