summaryrefslogtreecommitdiff
path: root/add.go
blob: 20d734f8d7f6169ccd86083cc2e7cfea0d8100f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package main

import (
	"go.wit.com/log"
	"go.wit.com/toolkits/tree"
	"go.wit.com/widget"
)

func add(n *tree.Node) {
	p := n.Parent
	switch n.WidgetType {
	case widget.Window:
		newWindow(p, n)
	case widget.Group:
		newGroup(p, n)
	case widget.Grid:
		newGrid(n)
	case widget.Box:
		newBox(n)
	case widget.Label:
		newLabel(p, n)
	case widget.Button:
		newButton(p, n)
	case widget.Checkbox:
		newCheckbox(p, n)
		setChecked(n, n.State.Checked)
	case widget.Spinner:
		newSpinner(p, n)
	case widget.Slider:
		newSlider(p, n)
	case widget.Dropdown:
		newDropdown(p, n)
		setText(n, n.State.DefaultS)
	case widget.Combobox:
		newCombobox(p, n)
		setText(n, n.State.DefaultS)
	case widget.Textbox:
		newTextbox(p, n)
		setText(n, n.State.DefaultS)
	/*
		case widget.Image:
			newImage(p, n)
	*/
	default:
		log.Log(ERROR, "add() error TODO: ", n.WidgetType, n.ProgName())
	}
}

func newAdd(n *tree.Node) {
	if n == nil {
		log.Warn("Tree Error: Add() sent n == nil")
		return
	}
	if n.WidgetType == widget.Root {
		me.treeRoot = n
		return
	}
	add(n)
	if n.TK == nil {
		log.Warn("Tree sent an action on a widget we didn't seem to have.")
		// do this init here again? Probably something
		// went wrong and we should reset the our while gocui.View tree
		n.TK = initWidget(n)
	}
	// show(n, !a.State.Hidden)
	if n.Hidden() {
		hide(n)
	} else {
		if n.State.Enable {
			// nothing to do
		} else {
			enable(n, false)
		}
	}
}