summaryrefslogtreecommitdiff
path: root/node.go
diff options
context:
space:
mode:
Diffstat (limited to 'node.go')
-rw-r--r--node.go37
1 files changed, 21 insertions, 16 deletions
diff --git a/node.go b/node.go
index f143771..b237c78 100644
--- a/node.go
+++ b/node.go
@@ -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