diff options
Diffstat (limited to 'node.go')
| -rw-r--r-- | node.go | 37 |
1 files changed, 21 insertions, 16 deletions
@@ -1,15 +1,30 @@ package gui -// import "git.wit.org/wit/gui/toolkit" +import "git.wit.org/wit/gui/toolkit" /* generic function to create a new node on the binary tree */ -func (n *Node) New(title string, t string) *Node { +func (n *Node) New(title string, t toolkit.WidgetType, custom func()) *Node { var newN *Node - newN = addNode(title, n.Width, n.Height) - newN.Widget.Type = t + newN = addNode(title) + newN.widget.Type = t + newN.widget.Action = "New" + newN.Custom = custom + + // TODO: This should not be defined for each widget. This has to be stupid + // or wait a second, is this where I send something to a channel? + newN.widget.Custom = func() { + if (newN.Custom == nil) { + log(debugChange, "newT.Custom() == nil. Not doing anything. SEND SOMETHING TO THE CHANNEL") + return + } + log(debugChange, "newT.Custom() START SEND SOMETHING TO THE CHANNEL widget.Name =", newN.widget.Name) + // send something to the channel here???? + newN.Custom() + log(debugChange, "newT.Custom() END SEND SOMETHING TO THE CHANNEL widget.Name =", newN.widget.Name) + } n.Append(newN) newN.parent = n @@ -19,20 +34,10 @@ func (n *Node) New(title string, t string) *Node { /* raw create function for a new node struct */ -func addNode(title string, width int, height int) *Node { +func addNode(title string) *Node { n := new(Node) - n.Name = title - n.Width = width - n.Height = height - - n.Widget.Name = title - n.Widget.Width = width - n.Widget.Height = height - - // no longer a string - // id := Config.prefix + strconv.Itoa(Config.counter) - // n.id = id + n.widget.Name = title n.id = Config.counter Config.counter += 1 |
