new-gui/int.go

49 lines
1.2 KiB
Go

package gui
import "log"
import "github.com/davecgh/go-spew/spew"
import toolkit "git.wit.org/wit/gui/toolkit/andlabs"
/*
Get the int from the gui toolkit
because eventually this gui package should become it's own seperate go routine and never interact from the
gui subroutine back into the upstream application using the gui package
TODO: instead store the int in the Node structure? (this is probably a better idea)
because technically every interaction with the toolkit has to go through the Queue() goroutine.
Is it "has to go" or "should go"? Probably it makes sense to strictly inforce it. No "callback" functions. IPC only (go channels)
*/
func (n *Node) Int() int {
if (toolkit.DebugToolkit) {
log.Println("gui.Node.Int() for node name =", n.Name)
scs := spew.ConfigState{MaxDepth: 1}
scs.Dump(n)
}
if (n.toolkit == nil) {
log.Println("gui.Node.Int() for toolkit struct = nil")
return 0
}
i := n.toolkit.Value()
return i
}
// which name to use?
func (n *Node) Value() int {
return n.Int()
}
func (n *Node) SetValue(i int) {
log.Println("gui.SetValue() START")
if (n.toolkit == nil) {
log.Println("gui.Node.SetValue() for toolkit struct = nil")
panic("SetValue failed")
}
n.Dump()
n.toolkit.Dump()
n.toolkit.SetValue(i)
}